Phunk! 2020-11-29 14:17 采纳率: 0%
浏览 644

为什么不满足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++。

  • 写回答

6条回答 默认 最新

  • qq_52170770 2020-11-29 15:01
    关注

    一开始x不需要赋值吧

    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站