Даны действительные числа [latex]x,y,z[/latex].Вычислить [latex]min^2(x+y+\frac{z}{2},xyz)+1[/latex]
x | y | z | m |
4.8 | 5.7 | 2.1 | 134.40250 |
0 | 0 | 0 | 1 |
-3.21 | 2.89 | 4.25 | 1555.47453 |
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <stdio.h> #include <math.h> int main() { double x,y,z,a,b,m,min; scanf("%lf %lf %lf",&x,&y,&z); a=x+y+z/2;//Вычисляем первую часть b=x*y*z;//Вычисляем вторую часть if(a>b) { min=b;//Находим минимум } else { min=a; } m=(min*min)+1; printf("%0.5lf",m); return 0; } |
Код на Java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) throws java.lang.Exception { Scanner in=new Scanner(System.in); double x=in.nextDouble(); double y=in.nextDouble(); double z=in.nextDouble(); double a=x+y+z/2; double b=x*y*z; double min; if(a>b) { min=b; } else { min=a; } double m=(min*min)+1; System.out.println(m); } } |
Вводим числа [latex]x,y,z[/latex]. Вычисляем [latex]a=x+y+\frac{z}{2}[/latex]. Вычисляем [latex]b=xyz[/latex].Сравниваем два числа и присваиваем [latex]min[/latex] минимальное из значений.
Вычисляем [latex]m=min^2+1[/latex].
Запустить код на С++ и проверить тесты можно тут.
Запустить код на Java и проверить тесты можно тут.
В принципе, все правильно, кроме отступов в условном операторе.
min=a; стоит в части else, значит оно должно быть или:
1) сразу после else в той же строке (компактный вариант),
2) в следующей строке с отступом,
3) как рекомендовал Игорь Евгеньевич:
Кроме того if(a>b)min=b; выглядит не красиво, условие и оператор сливаются вместе — поставьте пробел, или опять же вынесите в отдельную строку, возможно с { }.
Исправил
Засчитано, 10 баллов.