请教一个C循环的问题

来源:百度知道 编辑:UC知道 时间:2024/06/27 06:52:02
#include "stdio.h"
main()
{
int g,i,j,a,h,sum=0,avg=0;

do {

printf ("请输入班级号:\n");
scanf ("%d",&g);
printf ("请输入该班级的人数:\n");
scanf ("%d",&i);

for (j=1;j<=i;j++) {
printf ("请输入学号 %d 的成绩: \n",j);
scanf ("%d",&a);

sum=sum+a;
}
avg=sum/i;
printf ("该班级的平均成绩为:%d\n",avg);
printf ("是否输入另一个班级的成绩(Y/N)?");

scanf ("%c",&h);

} while (h == 'y'||h == 'Y');

}
这个程序怎么不执行循环啊

/*
改成这个就行了:),已经测试通过了。
那个h定义成int还是char无所谓,我顺手改了。
scanf()的输入被再上一次输入的回车覆盖了,我认为是这样的。
多输入一次就是了。
*/
#include "stdio.h"
main()
{
int g,i,j,a,sum=0,avg=0;
char h;

do {

printf ("请输入班级号:\n");
scanf ("%d",&g);
printf ("请输入该班级的人数:\n");
scanf ("%d",&i);

for (j=1;j<=i;j++) {
printf ("请输入学号 %d 的成绩: \n",j);
scanf ("%d",&a);

sum=sum+a;
}
avg=sum/i;
printf ("该班级的平均成绩为:%d\n",avg);
printf ("是否输入另一个班级的成绩(Y/N)?");
scanf ("%c",&h);
scanf ("%c",&h);

} while (h == 'y'||h == 'Y');

return 0;
}