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”);
或代码最后加上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