Code Bye

C编程中switch。case 问题

int main()
{
	int imonth;
	printf("请输入月份:\n");
	scanf_s("%d",&imonth,2);

	switch (imonth)
	{
	case 1:
	case 8:
	case 3:
		case 5:
		case 7:
		case 10:
		case 12:printf("31.\n"); break;
		case 2:printf(" 28\n"); break;
		case 6:
		case 9:printf("30\n"); break;
		default:
			printf("wrong\n"); break;
	}

}

小弟不才,请教为什么给Imonth变量赋值之后,switch语句块执行,case后面的printf()却没有输出,程序直接退出了,这是为什么?
调试的时候给变量赋值2,明显观察到代码已经执行到case 2然后才跳出循环。

解决方案

20

看不到输出是原因是程序正常退出了,你ctrl+F5运行就能看到了
或代码最后加上getchar();或system(“pause”);
#include<stdio.h>
int main()
{
	int imonth;
	printf("请输入月份:\n");
	scanf_s("%d",&imonth,2);

	switch (imonth)
	{
	case 1:
	case 8:
	case 3:
		case 5:
		case 7:
		case 10:
		case 12:printf("31.\n"); break;
		case 2:printf(" 28\n"); break;
		case 6:
		case 9:printf("30\n"); break;
		default:
			printf("wrong\n"); break;
	}
	getchar();
	getchar();
}

3

你输入了啥?

3


4

你代码都跑完了,程序结束了它当然退出了

2

现在的码农竟然99%都不会在cmd窗口中输入cd命令设置当前目录为程序所在目录,输入程序名运行程序了!

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C编程中switch。case 问题