c高手指点:下列程序

来源:百度知道 编辑:UC知道 时间:2024/05/10 15:08:17
下列程序中第二组数据输入时为什么出错?
第二组数据输入时出现input name: input number:
为什么啊?想不通
#include<stdio.h>
#include<string.h>
void main()
{ char t[2],a[2][10];
long b[2];
float c[2],d[2],e[2];
int i;
for(i=0;i<2;i++)
{printf("input name:");
gets(a[i]);
printf("input number:");
scanf("%ld",&b[i]);
printf("input english score:");
scanf("%f",&c[i]);
printf("input math score:");
scanf("%f",&d[i]);
printf("input computer score:");
scanf("%f",&e[i]);
}
for(i=0;i<2;i++)
{ printf("%s %ld %f\n",a[i],b[i],(c[i]+d[i]+e[i])/3);
}
getch();
}

简单

printf("input computer score:");
scanf("%f",&e[i]);
因为scanf捕获的只是你的float部分,你还打了个回车这个回车被下一次循环的gets(a[i]); 捕获到了所以存在这样的问题

你在最后一个scanf后面用一次gets或fflush(stdin);清空那个回车符号就可以了