因为你最后有个printf("Days=%d", days);
而如果你输入的month是14,是默认没有这种情况的,也就是跑的是default,这时候,days是不会被赋值的(而你的days也没有初值,所以变量未初始化),printf出来就可能是890这种随机数字。在我的电脑上试验的days是32141
把default分支改成:
default:
printf("Data Error!\n");
return -1;
break;
break;语句只是跳出循环,执行循环后的语句。
在你的代码中,break;执行后,它将跳出switch语句的作用域,而printf("Days=%d",days); 并不在switch语句的作用域内。所以不管输入是什么,它都将得到执行。
可以把default:后的break;改成return 1;这样一旦数据出错,自动退出程序。你也可以采用其他更好的方式来改进这个程序。
因为你在最后一定要打印printf("Days=%d",days); 所以给你一个随便的值.你在设一个条件就好了