为什么不满足if的条件,if内的语句还是会执行?

#include<stdio.h>
int main()
{
	int A=0, B=0, C=0, D=0, E=0, grade, x=1;
	printf("请输入百分制成绩:\n");
	while (x > 0)
	{
		scanf_s("%d", &x);
		if (x <= 100)
		{
			grade = x / 10;
			switch (grade)
			{
			case 10:
				A++;
				break;
			case 9:
				A++;
				break;
			case 8:
				B++;
				break;
			case 7:
				C++;
				break;
			case 6:
				D++;
				break;
			default:
				E++;
			}
		}
	}
	printf("各分数段人数为:\n90-100:%d\n80-89:%d\n70-79:%d\n60-69:%d\n0-59:%d\n", A, B, C, D, E);

输入的x大于100后,if内部的switch依旧会执行default,使E++。

查看全部
weixin_51176975
Phunk!
2020/11/29 14:17
  • c语言
  • 点赞
  • 收藏
  • 回答
    私信

4个回复