急求C++程序小问题,输入年份和月份,输出该月的天数。

2024-11-15 16:27:37
推荐回答(3个)
回答(1):

【解题思路】本题的难点主要就是判断是否闰年和大小月份,判断闰年的标准是能被4整除且不能被100整除的年份,或者能被400整除的年份是闰年。至于大小月,则可以通过一个switch……case语句来实现。具体代码如下:

【程序代码】
#include                      //控制台操作头文件

int main()                              //主函数 
{int y,m,d;                             //变量声明
 do{printf("请输入年份(0退出):");       //提示输入年份 
    scanf("%d",&y);                     //从键盘输入年份
    if(y==0)                            //如果输入0结束程序 
      {printf("程序结束\n");            //显示结束提示
       break;}                          //终止循环,结束程序
    printf("请输入月份:");              //提示输入月份
    scanf("%d",&m);                     //从键盘输入月份
    if(y<0||m<1||m>12)                  //如果年月输入有误
      {printf("年月输入有误,请重试\n"); //显示错误提示
       continue;}                       //进入下轮循环,重新输入
    switch(m)                           //以月份确定本月天数
          {case 12:d=31;break;          
           case 11:d=30;break;
           case 10:d=31;break;
           case 9: d=30;break;
           case 8: d=31;break;
           case 7: d=31;break;
           case 6: d=30;break;
           case 5: d=31;break;
           case 4: d=30;break;
           case 3: d=31;break;
           case 2: if((y%4==0&&y%100!=0)||
                      (y%400==0)) d=29; //闰年29天
                   else d=28;           //非闰年28天 
                   break;
           case 1: d=31;break;}
    printf("本月共有%d天\n\n",d);       //显示本月天数 
    }while(1);
 system("PAUSE");                       //屏幕暂停
 return 0;                              //结束程序
}

【程序代码】
以上代码DEV C++运行通过。

回答(2):

#include
void main()
{
int year,month;
cout<<"请输入年份和月份:"< cin>>year>>month;
if(year%4==0&&year%100!=0||year%400==0)
cout< else
cout< if(month==2)
{
if(year%4==0&&year%100!=0||year%400==0)
cout< else
cout< }
else
if(month==4||month==6||month==9||month==11)
cout< else
cout<}

回答(3):

#include

void
main()
{
int
year,month;
cout<<"请输入年份和月份:"<cin>>year>>month;
if(year%4==0&&year%100!=0||year%400==0)
cout<else
cout<if(month==2)
{
if(year%4==0&&year%100!=0||year%400==0)
cout<else
cout<}
else
if(month==4||month==6||month==9||month==11)
cout<else
cout<}