Can';在C语言中不能使用标准差
我想尽一切办法让标准偏差发挥作用。 我正在尝试制作一个程序来获取学生的分数(计数由用户决定),并计算分数的平均值和标准差。它计算平均罚款,但标准偏差为“7712160851427328.00”Can';在C语言中不能使用标准差,c,math,standards,deviation,C,Math,Standards,Deviation,我想尽一切办法让标准偏差发挥作用。 我正在尝试制作一个程序来获取学生的分数(计数由用户决定),并计算分数的平均值和标准差。它计算平均罚款,但标准偏差为“7712160851427328.00” #包括 int main(){ int i; int j; 整数计数; int等级=0; int grades[5]={0};//Init 整数和=0; 浮动偏差和; 浮动平均值; 浮动标准差; printf(“给出计数:”); scanf(“%d”、&count); 对于(i=0;i
#包括
int main(){
int i;
int j;
整数计数;
int等级=0;
int grades[5]={0};//Init
整数和=0;
浮动偏差和;
浮动平均值;
浮动标准差;
printf(“给出计数:”);
scanf(“%d”、&count);
对于(i=0;i 对于(i=0;i当您进行整数除法时,您的平均值计算将失败,这将使后续的std dev计算不正确
更改:
mean = sum/count;
到
因此,除法是使用浮点运算来执行的。您可能还希望在这一点上打印平均值,以检查它是否合理。您必须将偏差和初始化为零。否则它会将垃圾值作为其初始值
standard_deviation = sqrt(deviation_sum /count - 1);
应该是
standard_deviation = sqrt(deviation_sum / (count - 1));
请。首先,避免这种类型的构造(i
可能导致数组访问超出范围):
for(i=0;i第一个提示:您可以用grades[grade]替换整个switch
语句++
。第二个提示:除非你想让自己哭,否则不要使用名为grades
和grades
的两个变量。在更正了不同答案中指出的所有逻辑错误后,如果我将0
输入到count
,那么代码的输出会是什么?即使输入1
也可能会很有趣。哇,4个答案,每个都指出了需要解决的4个不同问题。
standard_deviation = sqrt(deviation_sum /count - 1);
standard_deviation = sqrt(deviation_sum / (count - 1));
for(i = 0; i <= 5; i++){
while(grades[i] == 0){
i++;
}