c中关于scanf的问题?
发现一段代码如下:
#include<stdio.h>
#include<conio.h>
int main()
{
int i,ren,fen,zongfen=0,bujige=0;
float pingjun;
printf("请输入人数:");
scanf("%i",&ren);
for(i=1;i<=ren;i++)
{
printf("请输入第%i个人的分数:",i);
scanf("%i\n",&fen);
zongfen+=fen;
if(fen<65)
bujige++;
}
pingjun=(float)zongfen/ren;
printf("全班人数的平均分是:%f\n",pingjun);
printf("不及格人数是:%i\n",bujige);
return 0;
}
运行出错,改为
#include<stdio.h>
#include<conio.h>
int main()
{
int i,ren,fen,zongfen=0,bujige=0;
float pingjun;
printf("请输入人数:");
scanf("%i",&ren);
for(i=1;i<=ren;i++)
{
printf("请输入第%i个人的分数:",i);
scanf("%i",&fen);
zongfen+=fen;
if(fen<65)
bujige++;
}
pingjun=(float)zongfen/ren;
printf("全班人数的平均分是:%f\n",pingjun);
printf("不及格人数是:%i\n",bujige);
return 0;
}
就没错
只是for循环中的
printf("请输入第%i个人的分数:",i);
scanf("%i\n",&fen);
改为printf("请输入第%i个人的分数:",i);
scanf("%i",&fen);
这是为什么呢?