#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int i, j;
float mas[5];
float sum_mas, sr_arif, razn1, razn2;
printf("Vvedite massiv iz 5 elementov \n:");
for (i=0; i<5; i++)
{ printf("Vvedite element[%d]: ", i);
scanf("%f", &mas[i]); }
for(i=0 ; i<5 ; i++)
{
sum_mas += mas[i]; // Сумма элементов массива.
sr_arif = sum_mas / 5; // Сумма элементов массива деленая на кол-во элементов = Ср. ариф.
}
razn1 = mas[0]-sr_arif; // Из первого элемента массива вычитаем среднее ариф-ое, получаем разницу1.
razn2 = mas[i]-sr_arif; // Из каждого элемента массива вычитаем среднее ариф-ое, получаем разницу2.
j=0 ; // Обнуляем переменную.
for (i = 1 ; i<10 ; i++)
{
if( fabs(razn1) > fabs(razn2)) // Если модуль разницы1 больше модуля разницы2, то...
{ j=i; // элемент массива вводим в новую переменную и...
razn1 = razn2; } // разницу1 приравниваем к разнице2.
}
printf ("\n Srednee arifmechicheskoe: %3.3f", sr_arif); // Вывести среднее арифм-ое с оукруглением.
printf ("\n Naibolee blizkoe znachenie: %3.3f", mas[j]); // Вывести наиболее близкое значение.
getch(); // Ожидать нажатия любой клавиши.
return 0; // Вернуть 0 функции int main().
}
1 элем: 1
2 элем: 5
3 элем: 4
4 элем: 3
5 элем: 3
Ср. Ариф: 3.200
Наиболее близкий: 1.000.
Тоже неверно, думаю наиболее близкий 3.000, либо может быть и 4.000.
9
8
7
6
5
Ср. Ариф: 7.000
Наиболее близкий: 9.000.
Почему 9, когда наиболее близкое значение еще м.б. 8.000.
Как можно исправить?
PS: В условии что имеется ввиду под наиболее близким элементом? В меньшую сторону от ср. арифм. или в большую?