c语言编写程序从键盘任意输入年份和月份,计算出这一年的这一个月有多少天?

Python017

c语言编写程序从键盘任意输入年份和月份,计算出这一年的这一个月有多少天?,第1张

主要判断出该年是否为闰年即可,C语言代码如下:

#include <stdio.h>

int main(){

  int y, m

  scanf("%d %d", &y, &m)

  int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}

  if ((y % 4 == 0 &&y % 100 != 0) || (y % 400 == 0)) // 闰年

      month[2] = 29// 闰年2月为29天

  printf("%d年%d月有%d天\n", y, m, month[m])

  return 0

}

运行结果如下:

输出符合题意,望采纳~

#include <stdio.h>

int main (void)

{

int a,b

scanf("%4d%*c%d",&a,&b)

if(b==2)

{

if((a%4==0 && (a%100)!=0) || (a%400==0))

printf("%d年%d月有29天\n",a,b)

else

printf("%d年%d月有28天\n",a,b)

}

if(b==1 || b==3 || b==5 || b==7 || b==8 || b==10 || b==12)

printf("%d年%d月有31天\n",a,b)

if(b==4 || b==6 || b==9 || b==11)

printf("%d年%d月有30天\n",a,b)

}

scanf那行把“%*d”换成”%*c“,因为你输入的分隔符是字符而不是数字。要注意的是,输入格式是“2012.2”或“2012-2”都可以,但不能是”2012年2“,因为‘年’占更多的字符位。

用switch选择的:

#include<stdio.h>

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<stdio.h>

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 <stdio.h>

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 <stdio.h>

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: 语句段1break

case 常量表达式2: 语句段2break

case常量表达式n: 语句段nbreak

case常量表达式n+1:语句段n+ 1break

default :

参考资料c语言百度经验