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

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

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

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

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

textual
Листинг программы
int main(int argc, char *argv[])
{
  setlocale(LC_ALL, "RU");
  int n;
  printf("Введите размер массива\n");
  scanf("%d", &n);
  double arr[n];
  printf("Введите массив\n");
  for(int i=0; i<n; i++){
    scanf("%lf", &arr[i]);}
 
  int posMax = 0, posMin = 0;
  double max = arr[0], min = arr[0];
  for(int i=0; i<n; i++){
    if(max < arr[i]){
      max = arr[i];
      posMax = i;}
    if(min > arr[i]){
      min = arr[i];
      posMin = i;}
  }
  printf("Максимум %lf; Минимум %lf\n", max, min);
  printf("Поменяем их местами\n");
  arr[posMax] = min;
  arr[posMin] = max;
  for(int i=0; i<n; i++){
    printf("%lf ", arr[i]);}
  printf("\n");
 
  printf("Сумма элементов массива ");
  max = 0;
  for(int i=0; i<n; i++){
    max += arr[i];}
  printf("%lf\n", max);
  
  printf("Произведение элементов массива ");
  max = 1;
  for(int i=0; i<n; i++){
    max *= arr[i];}
  printf("%lf\n", max);
  
  return 0;
}

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

В этом коде:

  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
Похожие ответы