Консультация № 187130
24.01.2013, 10:20
143.74 руб.
0 5 1
Здравствуйте дорогие эксперты! Помогите доделать программу на языке "С" . Программа должна работать следующим образом. Сначала пользователь вводит количество обрабатываемых чисел (значение n). Затем, он вводит n чисел в одномерный массив. После этого программа должна обработать эти числа и вывести результат согласно варианту задания.
Собственно само задание: Определить, сколько среди заданного множества чисел таких чи-сел, которые отличаются от среднего арифметического не более, чем на значение среднего арифметического.
Вот код который надо доделать:
Код:
#include <stdio.h>
main()
{
float a[100];
int n;
printf("n="); scanf("%d",&n);
int i;
for(i=0;i<n;i++){
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
float m=0;
for(i=0;i<=n-1;i++){
m+=a[i];
}
float t;
t=m/n; /* Среднее арифметическое */
printf("Среднее арифметическое равно %g \n",t);
}

Обсуждение

Неизвестный
24.01.2013, 10:33
общий
это ответ
Здравствуйте, Посетитель - 390096!

нужно ещё раз запросить порог:

Код:
float fDelta;
printf("delta=");
scanf("%f",&fDelta);

потом в цикле ещё раз пробежаться и сравнить среднее арифметическое со всеми через дельту:

Код:
int iCount = 0;
for(i=0;i<=n-1;i++){
if(a[i] >= t - iDelta && a[i] <= t + iDelta)
iCount++;
printf("Чисел, попавших в окрестность СА: %n \n", iCount);
}
Неизвестный
24.01.2013, 10:54
общий
24.01.2013, 10:54
Сандров Алекс. Можно это файлом "main.c" выложить , а то компиляция не проходит
Неизвестный
24.01.2013, 11:01
общий
а зачем нам вводить переменную "fDelta" ?
Неизвестный
24.01.2013, 11:05
общий
Каюсь, сделал три ошибки

Вот код:

Код:
#include <stdio.h>

int main(int argc, char* argv[])
{
float a[100];
int n;
printf("n="); scanf("%d",&n);
int i;
for(i=0;i<n;i++){
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
float m=0;
for(i=0;i<=n-1;i++){
m+=a[i];
}
float t;
t=m/n; /* Среднее арифметическое */
printf("Среднее арифметическое равно %g \n",t);

// get delta
float fDelta;
printf("delta=");
scanf("%f",&fDelta);

int iCount = 0;
for(i=0;i<=n-1;i++){
if(a[i] >= t - fDelta && a[i] <= t + fDelta)
iCount++;
}
printf("Чисел, попавших в окрестность СА: %d \n", iCount);
return 0;
}
Неизвестный
24.01.2013, 11:09
общий
24.01.2013, 11:11
Цитата: 390096
а зачем нам вводить переменную "fDelta" ?


Каюсь ещё раз, прочитал "на заданное значение"

Код:
int main(int argc, char* argv[])

{
float a[100];
int n;
printf("n="); scanf("%d",&n);
int i;
for(i=0;i<n;i++){
printf("a[%d]=",i);
scanf("%f",&a[i]);
}
float m=0;
for(i=0;i<=n-1;i++){
m+=a[i];
}
float t;
t=m/n; /* Среднее арифметическое */
printf("Среднее арифметическое равно %g \n",t);

int iCount = 0;
for(i=0;i<=n-1;i++){
// для наглядности оставил t с обеих сторон
if(a[i] >= (t - t) && a[i] <= (t + t))
iCount++;
}
printf("Чисел, попавших в окрестность СА: %d \n", iCount);
return 0;
}
Форма ответа