【发布时间】:2014-12-14 09:56:44
【问题描述】:
为什么我计算的平均分是错误的?
我有一个函数:
int student_average_scope() {
char name[50];
int group;
int exam;
int average = 0;
int digit = 0;
int counter_digits = 0;
for (int i = 0; i < 4; i++) {
sscanf(student_list[i], "%d %[^0-9] %d", &group, name, &exam);
while (exam > 0) {
digit = exam % 10;
average += digit;
counter_digits++;
exam = exam / 10;
}
printf("%.1f\n", (double)average / counter_digits);
}
return 0;
}
student_list[i] = "4273 Константинопольский А. А. 4333 знзнз" 的平均值等于 3.9,但正确答案是 3.2!如果我做简单的函数,计算平均分数给我正确的输出(3.2)。我哪里出错了?
int student_average_scope() {
int exam = "4333";
int average = 0;
int digit = 0;
int counter_digits = 0;
while (exam > 0) {
digit = exam % 10;
average += digit;
counter_digits++;
exam = exam / 10;
}
printf ("%.1f\n", (double) average / counter_digits);
return 0;
}
【问题讨论】:
-
“它不起作用”不是一个很好的解释。包括更多细节,比如你得到的输出是什么
-
@CoolGuy 哦,对不起,谢谢。我会修改我的答案
-
第一个给了我正确的答案?
-
当我做
13/4(average/counter_digits)时得到3.3