Найти наибольший и наименьший элементы массива и поменять их местами - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ввести массив вещественных чисел размером п, п вводиться с клавиатуры. Найти его наибольший и наименьший элементы и поменять их местами. Найти сумму и произведение всех элементов массива.

Решение задачи: «Найти наибольший и наименьший элементы массива и поменять их местами»

textual
Листинг программы
  1. int main(int argc, char *argv[])
  2. {
  3.   setlocale(LC_ALL, "RU");
  4.   int n;
  5.   printf("Введите размер массива\n");
  6.   scanf("%d", &n);
  7.   double arr[n];
  8.   printf("Введите массив\n");
  9.   for(int i=0; i<n; i++){
  10.     scanf("%lf", &arr[i]);}
  11.  
  12.   int posMax = 0, posMin = 0;
  13.   double max = arr[0], min = arr[0];
  14.   for(int i=0; i<n; i++){
  15.     if(max < arr[i]){
  16.       max = arr[i];
  17.       posMax = i;}
  18.     if(min > arr[i]){
  19.       min = arr[i];
  20.       posMin = i;}
  21.   }
  22.   printf("Максимум %lf; Минимум %lf\n", max, min);
  23.   printf("Поменяем их местами\n");
  24.   arr[posMax] = min;
  25.   arr[posMin] = max;
  26.   for(int i=0; i<n; i++){
  27.     printf("%lf ", arr[i]);}
  28.   printf("\n");
  29.  
  30.   printf("Сумма элементов массива ");
  31.   max = 0;
  32.   for(int i=0; i<n; i++){
  33.     max += arr[i];}
  34.   printf("%lf\n", max);
  35.  
  36.   printf("Произведение элементов массива ");
  37.   max = 1;
  38.   for(int i=0; i<n; i++){
  39.     max *= arr[i];}
  40.   printf("%lf\n", max);
  41.  
  42.   return 0;
  43. }

Объяснение кода листинга программы

В этом коде:

  1. *int main(int argc, char argv[])** - это функция main программы, она запускается при запуске программы.
  2. setlocale(LC_ALL, RU) - это установка локали на русский язык для вывода сообщений.
  3. int n; - это переменная для хранения размера массива.
  4. printf(Введите размер массива\n); - это сообщение для пользователя, чтобы он ввел размер массива.
  5. scanf(%d, &n); - это чтение размера массива из ввода пользователя.
  6. double arr[n]; - это объявление массива arr размером n.
  7. printf(Введите массив\n); - это сообщение для пользователя, чтобы он ввел массив.
  8. for(int i=0; i<n; i++){ - это цикл для прохода по всем элементам массива.
  9. scanf(%lf, &arr[i]); - это чтение элемента массива из ввода пользователя.
  10. int posMax = 0, posMin = 0; - это переменные для хранения позиции максимального и минимального элементов массива.
  11. double max = arr[0], min = arr[0]; - это переменные для хранения начального значения максимального и минимального элементов массива.
  12. for(int i=0; i<n; i++){ - это цикл для поиска максимального и минимального элементов массива.
  13. if(max < arr[i]){ - это условие для проверки, является ли текущий элемент больше текущего максимального элемента.
  14. max = arr[i]; - это обновление значения максимального элемента.
  15. posMax = i; - это обновление значения позиции максимального элемента.
  16. if(min > arr[i]){ - это условие для проверки, является ли текущий элемент меньше текущего минимального элемента.
  17. min = arr[i]; - это обновление значения минимального элемента.
  18. posMin = i; - это обновление значения позиции минимального элемента.
  19. printf(Максимум %lf; Минимум %lf\n, max, min); - это вывод значений максимального и минимального элементов массива.
  20. printf(Поменяем их местами\n); - это сообщение для пользователя о том, что элементы будут переставлены.
  21. arr[posMax] = min; - это перестановка максимального и минимального элементов.
  22. arr[posMin] = max; - это перестановка максимального и минимального элементов.
  23. for(int i=0; i<n; i++){ - это цикл для вывода всех элементов массива.
  24. printf(%lf, arr[i]); - это вывод значения элемента массива.
  25. printf(\n); - это завершение вывода.
  26. printf(Сумма элементов массива); - это вывод суммы элементов массива.
  27. max = 0; - это обновление начального значения суммы.
  28. for(int i=0; i<n; i++){ - это цикл для прохода по всем элементам массива.
  29. max += arr[i]; - это обновление значения суммы.
  30. printf(%lf\n, max); - это вывод значения суммы.
  31. printf(Произведение элементов массива); - это вывод произведения элементов массива.
  32. max = 1; - это обновление начального значения произведения.
  33. for(int i=0; i<n; i++){ - это цикл для прохода по всем элементам массива.
  34. *max = arr[i];** - это обновление значения произведения.
  35. printf(%lf\n, max); - это вывод значения произведения.
  36. return 0; - это выход из функции main программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы