用switch选择的:
#include<stdioh>
int main()
{
int y,m;
printf("请依次输入年,月:\n");
scanf("%d,%d",&y,&m); //上机时注意打逗号,也可修改为其他格式
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("这个月有31天\n");break;
case 2 : if(y%4==0&&y%100!=0||y%400==0) //最基本的判断闰年的条件
printf("这个月有29天\n");
else printf("这个月有28天\n");break;
case 4:
case 6:
case 9 :
case 11:printf("这个月有30天\n");break;
}
return 0;
}
用指针型列举的:
#include<stdioh>
int a[]={31,28,31,30,31,30,31,31,30,31,30,31},p1,p2,p3,i=1,k=0;
int main()
{
int p1,p2;
printf("请依次输入年·月:\n");
scanf("%d%d",&p1,&p2);
if(p1%4==0&&p1%100!=0||p1%400==0)
a[1]=29;
if(p2>12)
printf("您的输入有误!\n");
printf("这个月的天数为:%d\n",a[p2-1]);
return 0;
}#include <stdioh>
main()
{int a,b;
printf("请输入年份和月份:\n");
scanf("%d%d",&a,&b);
if (a%4==0&&a%100!=0)
if(b==2)
printf("这个月有29天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");
else if(b==2)
printf("这个月有28天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");}
普通
#include <stdioh>
main(){
int a,b;
printf("请输入年份和月份:\n");
scanf("%d%d",&a,&b);
if (a%4==0&&a%100!=0)
if(b==2)
printf("这个月有29天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");
else if(b==2)
printf("这个月有28天\n");
else if (b==1||b==3||b==5||b==7||b==8||b==10||b==12)
printf("这个月有31天\n");
else
printf("这个月有30天\n");}
扩展资料
switch 语句可以处理多分支选择问题,根据其中break 语句的使用方法,一般分三种情况。
在switch 语句的每个语句段中都使用break 语句,这是switch 语句的主要使用方法,一般形式为:
switch (表达式)
case 常量表达式1: 语句段1; break;
case 常量表达式2: 语句段2; break;
case常量表达式n: 语句段n; break;
case常量表达式n+1:语句段n+ 1; break;
default :
没有直接的方法!你首先判断当年是不是闰年,然后你获取当前的月份,平年2月28天,闰年28+1=29天;大月:1,3,5,7,8,10,12为31天;小月:4,6,9,11为30天;明白了吧
#include <stdioh>
main()
{
int year,day,d,month,leap;
int i;
int Month[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("输入年份:\n");
scanf("%d",&year);
printf("输入月份:\n");
scanf("%d",&month);
if( (year%4!=0) ||( (year%100==0)&& (year%400!=0)))
Month[2] = 29;
printf("%d年%d月有%d天",year,month,Month[month]);
}
用 if 判断是否闰年。月份的天数存于数组,用月做下标。
#include <stdioh>
int main(){
int MonthDay[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int y,m;
printf("input year month:2018 2\n");
scanf("%d %d",&y,&m);
if (((y%4==0)&&(y%100!=0)||(y%400==0)))MonthDay[2]=29; //闰年
if (m<0 || m >12)m=0; //错误的月
printf("%d\n",MonthDay[m]); //输出结果
return 0;
}
以上就是关于c语言用switch编程一个月有多少天,为什么我输出的结果没有天数,输出的只有年和月全部的内容,包括:c语言用switch编程一个月有多少天,为什么我输出的结果没有天数,输出的只有年和月、C#中怎么得到当月的天数(当月共有多少天)、C语言输入年份月份,输出天数。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)