#include<stdio.h> int main() { int score; int sum; double ave; int fail=0; int stu=0; while(score>=0) { printf("请输入成绩:"); scanf("%d",&score); sum=sum+score; stu++; if(score<60) { fail++;} } printf("%d\n",sum); printf("%d\n",stu); ave=sum/stu; printf("%d\n",stu); if (stu==0) printf("WRONG!") ; if (stu!=0) {printf("学生平均成绩为%d",ave); printf("不及格人数为%d",fail); } }哪里错了
时间: 2024-04-17 12:23:36 浏览: 85
在你的代码中,有几个问题需要修正:
1. 在使用变量 `score` 之前,应该先给它一个初始值,例如将 `int score;` 改为 `int score = 0;`。
2. 在计算平均成绩时,你使用了整数除法,这会导致结果被截断为整数。要得到正确的结果,你需要将 `ave` 的类型改为 `double`,并修改计算平均成绩的代码为 `ave = (double)sum / stu;`。
3. 在第一个输出语句中,你打印了 `stu` 而不是 `sum`,需要将 `printf("%d\n",stu);` 修改为 `printf("%d\n",sum);`。
4. 在最后一行的输出语句中,缺少了一个换行符,需要将 `printf("不及格人数为%d",fail);` 修改为 `printf("不及格人数为%d\n",fail);`。
修正以上问题后,你的代码应该可以正常运行了。
阅读全文