Найти среднее арифметическое отрицательных элементов до max значения и количество нулей после него - C (СИ)

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

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

Здравствуйте,пишу пограмку на Си, помогите сделать так,чтобы она рассчитывала среднее арифметическое отрицательных элементов до максимального элемента и определяла кол-во нулевых элементов после макс.элемента.Вот мой код,за ранее спасибо.
Листинг программы
  1. #include "stdio.h"
  2. #include "math.h"
  3. #include "conio.h"
  4. #include "windows.h"
  5.  
  6. int main ()
  7. {int i,n,imax,k=0,pos=0;
  8. double x[50]={5,16,-98,-96,-55,44,2,3,0,55,9,58,-74,-56,88,1,73,59,-18200,-8,77,2,99,1895,666,748,0,2,-89,-6,-74,7,88,5,23,-34,0,58,-98,-45,0,54,2,1,7,-9,-8,55,49,12},max=0;
  9. double s;
  10. SetConsoleOutputCP(1251);
  11. SetConsoleCP(1251);
  12. printf ("\nВведите размер массива(Не более 50) =");
  13. scanf_s ("%d", &n);
  14. if (n<0 || n>50)
  15. {printf ("\t Размер массива n=%d не соответствует размеру элементов 1..50\n",n);
  16. _getch ();
  17. exit (0);
  18. }
  19. printf ("Массив х размером %d \n",n);
  20. for (i=0;i<n;i++)
  21. printf ("%8.0lf",x[i]);
  22. s=0;
  23. k=0;
  24. for (i=0;i<n;i++)
  25. if (x[i]<0);
  26. {s+=x[i];
  27. k++;}
  28. s/=k;
  29. printf ("\nСреднее арифметическое отрицательных элементов=%8.0lf\n",s);
  30. for (i=0;i<n;i++)
  31. {
  32. if (x[i]>max)
  33. {max=x[i];
  34. pos=i;
  35. }
  36. }
  37. printf ("\nМаксимальное значение элемента =%8.0lf\n",max);
  38. printf ("\Позиция = %d",pos);
  39. getch ();
  40. return 0;
  41. }

Решение задачи: «Найти среднее арифметическое отрицательных элементов до max значения и количество нулей после него»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <locale.h>
  4. #define N 50
  5.  int main(void)
  6. {
  7. setlocale(LC_ALL, "ru");
  8.     int i,k=0,pos=0,c=0;
  9.     double x[N]={5,16,-98,-96,-55,44,2,3,0,55,9,58,-74,-56,88,1,73,59,-18200,-8,77,2,99,1895,666,748,0,2,-89,-6,-74,7,88,5,23,-34,0,58,-98,-45,0,54,2,1,7,-9,-8,55,49,12};
  10.     double max,s,b;
  11.     max=x[0];
  12.    for (i=1;i<N;i++)
  13.     {
  14.         if (x[i]>max)
  15.         {max=x[i];
  16.         pos=i;
  17.         }
  18.     }
  19.         for(i=pos+1;i<N;i++){
  20.         b=x[i];
  21.         if(b==0)c++;
  22.        
  23.                 }                      
  24.     s=0;
  25.     k=0;
  26.     for (i=0;i<pos;i++){
  27.         if (x[i]<0) {s+=x[i];k++;}
  28.                                }
  29.     s/=k;
  30. return 0;
  31.  }

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

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

  1. Установка начального значения переменных:
    • max устанавливается равным первому элементу массива x[0].
    • s устанавливается равным нулю.
    • k устанавливается равным нулю.
    • pos устанавливается равным нулю.
    • c устанавливается равным нулю.
  2. Поиск максимального значения в массиве:
    • Переменная max инициализируется значением первого элемента массива x[0].
    • Используется цикл for, чтобы пройти через каждый элемент массива от индекса 1 до N-1.
    • Если текущий элемент x[i] больше значения max, то обновляется значение max, а также индекс pos для последнего найденного максимального элемента.
  3. Подсчет количества нулей после максимального значения:
    • Переменная c инициализируется нулем.
    • Используется цикл for, чтобы пройти через каждый элемент массива, начиная с индекса pos+1.
    • Если текущий элемент x[i] равен нулю, то увеличивается значение переменной c.
  4. Подсчет среднего арифметического отрицательных чисел:
    • Переменная s инициализируется нулем.
    • Переменная k инициализируется нулем.
    • Используется цикл for, чтобы пройти через каждый элемент массива до индекса pos.
    • Если текущий элемент x[i] отрицательный, то к переменной s прибавляется его значение, а переменная k увеличивается на единицу.
    • Значение переменной s делится на значение переменной k, чтобы получить среднее арифметическое.
  5. Вывод результатов:
    • Значение переменной s выводится на экран.
    • Значение переменной c выводится на экран.

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


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

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

9   голосов , оценка 4.333 из 5

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

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

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