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

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

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

Здравствуйте,пишу пограмку на Си, помогите сделать так,чтобы она рассчитывала среднее арифметическое отрицательных элементов до максимального элемента и определяла кол-во нулевых элементов после макс.элемента.Вот мой код,за ранее спасибо.
#include "stdio.h"
#include "math.h"
#include "conio.h"
#include "windows.h"

int main ()
 
    {int i,n,imax,k=0,pos=0;
    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;
    double s;
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    printf ("\nВведите размер массива(Не более 50) =");
    scanf_s ("%d", &n);
    
    if (n<0 || n>50)
    {printf ("\t Размер массива n=%d не соответствует  размеру элементов 1..50\n",n);
    _getch (); 
    exit (0);
    }
    printf ("Массив х размером %d \n",n);
        for (i=0;i<n;i++)
            printf ("%8.0lf",x[i]);
    
    s=0;
    k=0;
    for (i=0;i<n;i++)
        
          if (x[i]<0);
            {s+=x[i];
    k++;}
    s/=k;
    printf ("\nСреднее арифметическое отрицательных элементов=%8.0lf\n",s);
    
    for (i=0;i<n;i++)
    {
        if (x[i]>max)
        {max=x[i];
        pos=i;
        }
    }
    printf ("\nМаксимальное значение элемента =%8.0lf\n",max);
    printf ("\Позиция = %d",pos);
    getch ();
    return 0;
}

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

textual
Листинг программы
#include <stdio.h>
#include <math.h>
#include <locale.h>
#define N 50
 int main(void)
{
setlocale(LC_ALL, "ru");
    int i,k=0,pos=0,c=0;
    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};
    double max,s,b;
    max=x[0];
   for (i=1;i<N;i++)
    {
        if (x[i]>max)
        {max=x[i];
        pos=i;
        }
    }
        for(i=pos+1;i<N;i++){
        b=x[i];
        if(b==0)c++;
        
                }                       
    s=0;
    k=0;
    for (i=0;i<pos;i++){
        if (x[i]<0) {s+=x[i];k++;}
                               }
    s/=k;
return 0;
 }

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

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

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