记住,上来就看答案,一辈子也学不会编程。如果不想烧脑,只有一个办法,退出编程界。当你能够独自完成上面的一道题目时,将是一次很大的飞跃,它让你获得成就感,让你初步具备编程思维。
程序思想:算某年某月有多少天,主要有两个重点。
1,闰年的表示
闰年:要求满足这一年能被4整除,不能被100整除且能被400整除(发现 是不是和小学学的不一样,所以是重点嘛)
代码:(year%4==0 year%100!=0 || year%400==0)
2,switch(开关)语句的使用。
switch是另外一种选择结构的语句,用来代替简单的、拥有多个分枝的ifelse语句,基本格式如下:
switch(表达式){
case整型数值1:语句1;
case整型数值2:语句2;
......
case整型数值n:语句n;
default:语句n+1;
}
它的执行过程是:
1)首先计算“表达式”的值,假设为m。
2)从第一个case开始,比较“整型数值1”和m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的case是否匹配成功。
3)如果“整型数值1”和m不相等,就跳过冒号后面的“语句1”,继续比较第二个case、第三个case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设m和“整型数值5”相等,那么就会从“语句5”一直执行到“语句n+1”。
4)如果直到最后一个“整型数值n”都没有找到相等的值,那么就执行default后的“语句n+1”。
需要重点强调的是,当和某个整型数值匹配成功后,会执行该分支以及后面所有分支的语句。
最后需要说明的两点是:
1)case后面必须是一个整数,或者是结果为整数的表达式,但不能包含任何变量。变量
2)default不是必须的。当没有default时,如果所有case都匹配失败,那么就什么都不执行。
源程序代码:
#include stdio.h
#include stdlib.h
void main()
{
int year, month, days;
printf(输入年份:);
scanf(%d,year);
printf(输入月份:);
scanf(%d, month);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break; case 2:
if(year%4==0 year%100!=0 || year%400==0// 判断闰年
days=29;
else days=28;
break;
default:
printf(月份输入错误!\n);
exit(1);
break; }
printf(天数:%d\n, days);
}
运行结果:
这就是求某年某月用C语言的方法了,如果还有什么简单方法或者意见可以在评论说喔。但是新的问题来了,如何求某年某月某天是这年的第多少天了?感觉是不是和这个问题很相像了?如果想知道代码的可以订阅之后私信我拿代码喔,还有有条件的可以自己上机写一下代码。欢迎在下方订阅,收藏点赞谢谢!
网友评论