-
1 # 使用者6765375850720
-
2 # 使用者3456175603979
用switch選擇的:
#include
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
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
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
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 :
參考資料
回覆列表
#include
int main(){
int year,month;
int a=0;
printf("輸入任意符合範圍(1月~12月)的月份和(1900年~9999年)年份,且兩個值之間空格分隔。\n");
scanf("%d %d",&year,&month);
if(year%4==0&&year%100!=0||year%400==0)
a=1;//結果為1代表閏年
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("year =%d month =%d days=31\n",year,month);
break;
case 2:
if(a==1)
printf("year =%d month =%d days=29\n",year,month);
else
printf("year =%d month =%d days=28\n",year,month);
break;
case 4:
case 6:
case 9:
case 11:
printf("year =%d month =%d days=30\n",year,month);
break;
}
return 0;
}