黑马程序员技术交流社区

标题: 代码是我从网上找的自己修改了部分运行出现循上的错误 [打印本页]

作者: x_starry    时间: 2016-3-23 19:20
标题: 代码是我从网上找的自己修改了部分运行出现循上的错误
修改中后在输入日子后会一直提示数据错误,但我实在是找不出原因,请大神指点?#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();
}



作者: liubo690337760    时间: 2016-3-26 22:04
同求解决方法........




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2