Программа находит минимум в массиве, а максимум нет - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <math.h> #include <conio.h> void main() { float Pi=M_PI; float x,y,xn=-3,xk=6,xh=1,min=1E+10,max=-1E+10,xmin,xmax; printf("\n X Y\n"); for (x=xn;x <= xk;x+=xh) { if (x<0) {y=pow(x,3)+ 2*(pow(x,2))-2;} if (x>1) {y=pow(x,2)+log(x);} else {y=pow(x,2*x-1)+cos(x);} printf("%5.2f %5.2f\n",x,y); if (y > max) {max=y; xmax=x;} if (y < min) {min=y; xmin=x;} } printf("Min= %5.2f ??? x=%5.2f\n",min,xmin); printf("Max= %5.2f ??? x=%5.2f\n",max,xmax); getch(); }
Решение задачи: «Программа находит минимум в массиве, а максимум нет»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <conio.h> int main() { float Pi=M_PI; float x,y,xn=-3,xk=6,xh=1,min=1E+10,max=-1E+10,xmin,xmax; printf("\n X Y\n"); for (x=xn;x <= xk;x+=xh) { if (x<0) {y=pow(x,3)+ 2*(pow(x,2))-2;} if (x>1) {y=pow(x,2)+log(x);} if (x) {y=pow(x,2*x-1)+cos(x);} printf("%5.2f %5.2f\n",x,y); if (y > max) {max=y; xmax=x;} if (y < min) {min=y; xmin=x;} } printf("Min= %5.2f ??? x=%5.2f\n",min,xmin); printf("Max= %5.2f ??? x=%5.2f\n",max,xmax); getch(); }
Объяснение кода листинга программы
В этом коде выполняется следующая последовательность действий:
- В начале программы объявляются переменные:
- Pi - значение числа π,
- x, y - переменные для хранения текущих значений координат,
- xn, xk, xh - переменные для задания диапазона значений координаты x,
- min, max - переменные для хранения минимального и максимального значений функции соответственно,
- xmin, xmax - переменные для хранения соответствующих координат.
- Затем выводится шаблон таблицы:
- printf(
\n X Y\n
);
- printf(
- Далее выполняется цикл по переменной x от xn до xk с шагом xh:
- for (x=xn;x <= xk;x+=xh)
- Внутри цикла определяются значения y в зависимости от значения x:
- if (x<0) {y=pow(x,3)+ 2*(pow(x,2))-2;}
- if (x>1) {y=pow(x,2)+log(x);}
- if (x) {y=pow(x,2*x-1)+cos(x);}
- Выводится текущее значение x и y:
- printf(
%5.2f %5.2f\n
,x,y);
- printf(
- Если текущее значение y больше максимального, то обновляется max и xmax:
- if (y > max) {max=y; xmax=x;}
- Если текущее значение y меньше минимального, то обновляется min и xmin:
- if (y < min) {min=y; xmin=x;}
- После завершения цикла выводятся минимальное и максимальное значения функции, а также соответствующие им значения x:
- printf(
Min= %5.2f ??? x=%5.2f\n
,min,xmin); - printf(
Max= %5.2f ??? x=%5.2f\n
,max,xmax);
- printf(
- В конце программы выполняется задержка, чтобы программа не закрылась сразу после вывода:
- getch();
- Все завершается возвратом из функции main():
- return 0;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д