Вычисление средней оценки от 8 судей спортсмену не всегда вычисляется верно - C (СИ)

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

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

Программа вычисляет среднюю оценку от 8 судей спортсмену, предварительно отбрасывая max и min оценки. В Visual Studio и в компиляторе BCC считает далеко не всегда правильно, помогите найти ошибку. Заранее спасибо)
#include <stdio.h>
#include <conio.h>
#define N 8
int main() 
{
    int i;
    float max,min,vec[N];
    float sum = 0.0, aver = 0.0;
    printf("Vvedite 8 ocenok:\n");
    for(i=0; i<N; i++) {
            printf("%d ocenka: ",i+1);
            scanf("%f",&vec[i]);
    }
    max = vec[0], min = vec[0];
    for(i=0; i<N; i++) {
            if(vec[i]<min)
            min = vec[i]; 
            if(vec[i]>max)
            max = vec[i];
    }
    for(i=0; i<N; i++) {
            if(vec[i] == min || vec[i] == max)
            i++;
            sum += vec[i];           
    }
    aver = sum/6;
    printf("Average: %4.2f",aver);
    getch();
}

Решение задачи: «Вычисление средней оценки от 8 судей спортсмену не всегда вычисляется верно»

textual
Листинг программы
int counter = 0;
for(i=0; i<N; i++)
    if(vec[i] != min && vec[i] != max)
    {
        counter++;
        sum += vec[i];
    }
ave = static_cast<double>(sum) / counter;

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

В данном коде выполняется вычисление средней оценки от 8 судей спортсмену.

  1. Объявляется переменная counter со значением 0, которая будет использоваться для подсчета количества оценок, которые будут учтены при вычислении средней оценки.
  2. Задается условие с помощью цикла for, которое проверяет каждый элемент массива vec. Элементы массива vec сравниваются с минимальным и максимальным значениями (переменные min и max). Если элемент не равен минимальному и максимальному значению, то он учитывается при вычислении средней оценки.
  3. Увеличивается значение переменной counter на 1, так как текущий элемент массива vec удовлетворяет условию и будет учтен при вычислении средней оценки.
  4. К значению переменной sum прибавляется значение текущего элемента массива vec. Переменная sum используется для хранения суммы всех оценок, которые будут учтены при вычислении средней оценки.
  5. После завершения цикла for, значение переменной sum делится на значение переменной counter, чтобы получить среднюю оценку. Для выполнения деления используется явное приведение типов (double) для переменной sum, чтобы обеспечить точность вычислений с плавающей точкой.
  6. Полученное значение средней оценки сохраняется в переменной ave. Таким образом, данный код выполняет вычисление средней оценки от 8 судей спортсмену.

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


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

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

11   голосов , оценка 4.182 из 5
Похожие ответы