在下面的代码中,我希望给用户一个选项来输入“e”来退出代码并查看结果,而不是当前代码中使用的 100。但是代码无法在终端使用“e”正确运行,因为 scanf 需要一个整数,与声明的类型匹配。如果我输入任何字符而不是整数,scanf 会以某种方式将其存储在变量中。这种方式是固定的吗?如果它已修复,我可以使用该存储值来检查是否退出程序吗?
#include<stdio.h>
int main(void)
{
int rating[11], x;
for (int a = 0; a <= 11; a++)
rating[a] = 0;
while (1){
printf("key in 100 to see the results\n");
printf("Enter the rating on a scale from 1 to 10 ?");
scanf("%i", &x);
if ((x < 1 || x > 10) && x != 100)
printf("bad entry ! \n");
if (x == 100){
printf("\nRatings..............No of responses\n");
for (int y = 1; y <= 10; y++)
printf("%2i.......................%2i\n", y, rating[y]);
return 0;
}
rating[x]++;
}
}