표준 편차를 얻으려고 모든 것을 시도했습니다. 나는 (사용자가 결정한) 학생의 성적을 얻고 성적의 평균과 표준 편차를 계산하는 프로그램을 만들고자한다. 그것은 평균 벌금을 계산하지만, 표준 편차는 "7712160851427328.00는" C에서 표준 편차가 작동하지 않습니다
#include <stdio.h>
int main(){
int i;
int j;
int count;
int grade = 0;
int grades[5] = {0}; //Init
int sum = 0;
float deviation_sum;
float mean;
float standard_deviation;
printf("Give Count: ");
scanf("%d", &count);
for(i = 0; i < count; i++){
printf("Give %d grade: ", (i+1));
scanf("%d", &grade);
switch(grade){
case 0:
grades[0]++;
break;
case 1:
grades[1]++;
break;
case 2:
grades[2]++;
break;
case 3:
grades[3]++;
break;
case 4:
grades[4]++;
break;
case 5:
grades[5]++;
}
sum += grade;
}
mean = sum/count;
printf("mean: %.2f \n", mean);
for(i = 0; i <= 5; i++){
while(grades[i] == 0){
i++;
}
for(j = 0; j < grades[i]; j++){
deviation_sum += (i-mean)*(i-mean);
printf("%d,%d\n",i,j);
}
}
standard_deviation = sqrt(deviation_sum /count - 1);
printf("deviation: %.2f\n", standard_deviation);
}
나는 문제가 루프의 마지막에 생각 그냥 알아낼 수 있습니다.
첫 번째 팁 : 전체 switch 문을 'grade [grade] ++'로 바꿀 수 있습니다. 두 번째 팁 : 당신이 스스로 울기를 원하지 않는다면,'grades'와'grade'라는 두 개의 변수를 사용하지 마십시오. –
'count'에'0'을 입력하면 다른 답변에서 지적 된 모든 논리적 오류를 수정 한 후 코드의 출력은 어떻게됩니까? –
'1'을 입력해도 재미있을 수 있습니다. – alk