Если a < b < c < d, то каждое число заменить наибольшим из них - C (СИ)
Формулировка задачи:
Даны действительные числа a, b, c, d. Если a < b < c < d, то каждое число заменить наибольшим из них; если a > b > c > d, то числа оставить без изменения; иначе все числа заменяются их квадратами.
Решение задачи: «Если a < b < c < d, то каждое число заменить наибольшим из них»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <locale.h>
int main(void)
{
setlocale(LC_ALL, "ru");
int i=1;
double a[4],c;
char b='a';
for(i=0;i<4;i++){
printf("Введите число %c\n",b);
scanf("%lf",&a[i]);b++;}
if(a[0]<a[1] && a[1]<a[2] && a[2]<a[3]){
c=a[0];
for(i=1;i<4;i++){if(c<a[i])c=a[i];}
for(i=0;i<4;i++)a[i]=c;
}else if(a[0]==a[1]&&a[1]==a[2]&&a[2]==a[3]){
printf("n\n");
for(i=0;i<4;i++)a[i]=pow(a[i],2);
}
b='a';
for(i=0;i<4;i++){printf("%c = %lf\n",b,a[i]);b++;}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с числами и вводом-выводом
- Установка русской локали для вывода
- Объявление переменных:
- i - счетчик для цикла
- a - массив из 4 double чисел
- c - переменная для хранения наибольшего числа
- b - переменная-указатель для ввода имени числа
- Цикл, который выполняется 4 раза. В каждой итерации происходит:
- вывод сообщения с просьбой ввести число, соответствующее текущему индексу массива
- считывание введенного числа с помощью функции scanf
- Проверка условия: если a[0] < a[1] и a[1] < a[2] и a[2] < a[3], то:
- наибольшее число присваивается переменной c
- в цикле проходятся все оставшиеся числа. Если c < a[i], то c присваивается значение a[i]
- в цикле проходятся все числа в массиве. Если число не равно c, то оно заменяется на c
- Если условие не выполняется, то выводится сообщение и выполняется цикл, в котором все числа в массиве возводятся в квадрат
- Вывод всех чисел в массиве с помощью цикла и функции printf