Неправильно считается маскимальный элемент массива - 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"); }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с массивами и выводом данных в консоль
- Определение размера массива, в данном случае 10 элементов
- Объявление переменных: i, n - счетчик для цикла; m - количество ненулевых элементов; min, max - для хранения минимального и максимального элемента массива; a[SIZE] - сам массив; k - для хранения суммы ненулевых элементов
- Вывод сообщения о количестве элементов в массиве и запрос на ввод элементов
- Проверка корректности ввода данных, а именно отсутствие отрицательных чисел и чисел больше 10 (предполагается, что в массиве не может быть повторяющихся элементов)
- Инициализация переменных min и max первым введенным элементом
- Проход по всем элементам массива, начиная со второго, и обновление min и max, если текущий элемент меньше или больше соответственно
- Проход по всем элементам массива, начиная с 0, и проверка условия для ненулевого элемента: он не равен 0, min и max элементам массива. Если условие выполняется, то к переменной k прибавляется значение текущего элемента, а к m - сумма всех ненулевых элементов
- Вывод минимального и максимального элемента массива
- Вывод среднего арифметического ненулевых элементов массива (переменная m делится на k)
- Ожидание нажатия клавиши для завершения работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д