A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

修改中后在输入日子后会一直提示数据错误,但我实在是找不出原因,请大神指点?#include <stdio.h>
#include <conio.h>
int main()
{
  int day,month,year,sum,leap;
  printf("\nplease input year:");
  scanf("%d",&year);
    for(int i=1;;i++){
          printf("\nplease input month:");
      scanf("%d",&month);
          if(month<=12)
                  break;
          else
                   printf("Deta error");
  }
    if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
       leap=1;
    else
       leap=0;
    for(int i=1;;i++){
          printf("\nplease input day:");
      scanf("%d",&day);
          if(month==2&&leap==1&&day<29)
                  break;
          else
                   if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31)
                           break;
                   else
                           if((month==4||month==6||month==9||month==11)&&day<=30)
                                   break;
                           else
                                   printf("Deta error");
  }
  //printf("\nplease input month:");
  //scanf("%d",&month);
  printf("\nplease input day:");
  scanf("%d",&day);
  switch(month) /*先计算某月以前月份的总天数*/
  {
    case 1:sum=0;break;
    case 2:sum=31;break;
    case 3:sum=59;break;
    case 4:sum=90;break;
    case 5:sum=120;break;
    case 6:sum=151;break;
    case 7:sum=181;break;
    case 8:sum=212;break;
    case 9:sum=243;break;
    case 10:sum=273;break;
    case 11:sum=304;break;
    case 12:sum=334;break;
    default:printf("data error");break;
  }
  sum=sum+day; /*再加上某天的天数*/
  //if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
  //  leap=1;
  //else
  //  leap=0;
  if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
    sum++;
  printf("\nIt is the %dth day.",sum);
  getch();
}


1 个回复

倒序浏览
同求解决方法........
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马