Неправильно считается маскимальный элемент массива - C (СИ)

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

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

Ребята,помогите пожалуйста,неправильно считает маскимальный элемент массива, подскажите в чем ошибка: Нужно найти среднее арифмитическое ненулевых элементов массива без учета минимального и максимального значения
#include <stdio.h>
#define SIZE 10
int main()
{
  int i,n,m=0,min,max,a[SIZE];
  float k=0;
  setlocale(0,"");
  printf("Kolichestvo elementov massiva: %d\n",SIZE);
  printf("Vvedite elementi massiva: ");
   for(i=0;i<SIZE;i++)
       scanf("%d",&a[i]);
   min=0;
   max=0;
   for(i=1;i<SIZE;i++)
   {
           if(a[i]<a[min])
               min=i;
           else 
               max=i;
   }
   for(i=0;i<SIZE;i++)
   {
       if(a[i]!=0&&a[i]!=a[min]&&a[i]!=a[max])
           {
               m=m+a[i];
               k++;
           }
       
   }
   
  printf("Minimalniy element massiva: %d\n",a[min]);
  printf("Maksimalniy element massiva: %d\n",a[max]);
  printf("Srednee arifmeticheskoe nenulevix elementov: %.2f\n",m/k);
  system("PAUSE");  
}

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

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#define SIZE 10
 
int main()
{
  int i, n, m = 0, min, max, a[SIZE];
  float k = 0;
  //setlocale(0,"");
  printf("Kolichestvo elementov massiva: %d\n",SIZE);
  printf("Vvedite elementi massiva: ");
   for(i=0; i < SIZE; i++)
       scanf("%d", &a[i]);
   min = a[0];
   max = a[0];
   for(i = 1; i < SIZE; i++)
   {
           if(a[i] < min)
               min = i;
           else 
               max = i;
   }
   for(i = 0; i < SIZE; i++)
   {
       if((a[i] != 0) && (a[i] != a[min]) && (a[i] != a[max]))
           {
               k++;
               m = m + a[i];
           }
       
   }
   
  printf("Minimalniy element massiva: %d\n", a[min]);
  printf("Maksimalniy element massiva: %d\n", a[max]);
  printf("Srednee arifmeticheskoe nenulevix elementov: %.2f\n", m/k);
  system("PAUSE");      
}

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

  1. Подключение необходимых библиотек для работы с массивами и выводом данных в консоль
  2. Определение размера массива, в данном случае 10 элементов
  3. Объявление переменных: i, n - счетчик для цикла; m - количество ненулевых элементов; min, max - для хранения минимального и максимального элемента массива; a[SIZE] - сам массив; k - для хранения суммы ненулевых элементов
  4. Вывод сообщения о количестве элементов в массиве и запрос на ввод элементов
  5. Проверка корректности ввода данных, а именно отсутствие отрицательных чисел и чисел больше 10 (предполагается, что в массиве не может быть повторяющихся элементов)
  6. Инициализация переменных min и max первым введенным элементом
  7. Проход по всем элементам массива, начиная со второго, и обновление min и max, если текущий элемент меньше или больше соответственно
  8. Проход по всем элементам массива, начиная с 0, и проверка условия для ненулевого элемента: он не равен 0, min и max элементам массива. Если условие выполняется, то к переменной k прибавляется значение текущего элемента, а к m - сумма всех ненулевых элементов
  9. Вывод минимального и максимального элемента массива
  10. Вывод среднего арифметического ненулевых элементов массива (переменная m делится на k)
  11. Ожидание нажатия клавиши для завершения работы программы

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


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

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

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