为什么会出现死循环?
题目是十个评委给选手打分,去掉一个最高分和最低分,求选手分数,如果输入全是数字,程序可正确运行,为什么输入字母(错误操作)就会死循环?(环境:winxp vc60)
void main()
{
int i;
int mymax = 0;
int mymin = 100;
int a[10];
int result = 0;
for (i = 0; i <= 9; i++)
{
printf("请%d号评委打分\n", i + 1);
scanf("%d", &a[i]);
while((a[i] <= 0) || (a[i] > 100))
{
printf("分数必须在1-100之间,请重新打分\n");
scanf("%d", &a[i]); //在这里,如果我输入字母就不行了
}
mymax > a[i]? mymax: mymax = a[i];
mymin < a[i]? mymin: mymin = a[i];
result += a[i];
}
result = result - mymax - mymin;
printf("选手最后得分:%d", result);
}
请问为什么?