【发布时间】:2013-05-11 00:09:08
【问题描述】:
我正在完成一个程序,我将一堆非负双精度数据读入一个数组,然后计算这些值的平均值和标准偏差。那么平均值加上stand dev代表得到一个B。
我在下一部分遇到了麻烦,我需要从给我 B 的数字数组中找到 最低分,然后在没有得到 B 的数组。我在这部分遇到了很多麻烦,任何帮助都会很棒。
当输入EOF 时,我还必须让程序停止,但我也无法弄清楚那部分,所以任何帮助也将不胜感激。现在我只是让它适用于所有正值并在引入负值时停止,这是我的代码:
#include <stdio.h>
#include <math.h>
int main () {
int arr[100];
int y, x;
int i;
double mean = 0;
double std = 0;
double this = 0;
i = 0;
printf("Enter next number, EOF to stop > ") ;
scanf("%d",&x);
while (x >= 0) {
arr[i++] = x;
printf ("Enter next number, EOF to stop > " );
scanf("%d",&x);
}
y = i;
double sum = 0;
double sum1= 0;
for(i = 0; i < y; i++){
sum = sum + arr[i];
}
mean = sum / y;
for (i = 0; i < y; i++){
sum1 = sum1 + pow((arr[i] - mean), 2);
}
std = sum1 / ((float)y - 1);
this = mean + sqrt(std);
if (10 > y) {
printf("**You must enter atleast 10 scores***\n");
return 0;
}
printf("Mean = %.2lf, Standard Deviation = %.2lf\n", mean, sqrt(std));
printf("Scores above %.2lf get a B\n", this);
return 0;
}
【问题讨论】:
标签: c