/* Note:Your choice is C IDE */
#include "stdio.h"
main()
{
    int y,m,d,d2,u,jin=0,s=0;  /*定义年月日,和变量日期*/
    int m3,m4,m5,m6,m7,m8,m9,m10,m11,m12;
start:; 
    m3=59,m4=90,m5=120,m6=151,m7=181,m8=212,m9=243,m10=273,m11=304,m12=334;
    printf("输入生产年份(2005-2011年):\n");
    scanf("%d",&y);
if (y<2005||y>2011)
{ while (s<1)
    {printf("您输入年份有误,",s++);goto start;}
    {printf("你是第一天玩电脑还是脑子有毛病啊,年份都不会输入?\a请再",s=0);goto start;}
}
else  if(y==2005)
    jin=6;
else if(y==2006)
    jin=0;
else if(y==2007) 
    jin=1;
else if(y==2008)
    {jin=2; m3=60,m4=91,m5=121,m6=152,m7=182,m8=213,m9=244,m10=274,m11=305,m12=335;}
else if(y==2009)
    jin=4;
else if(y==2010)
    jin=5;
else if(y==2011)
    jin=6;
start2:;
    printf("输入%d年的生产月份:\n\n",y);
    scanf("%d",&m);
if (m<0||m>12)           /*琐定一年12个月*/
{ while (s<1)
    {printf("您输入月份有误,请重新",s++);goto start2;}
    printf("你是第一天玩电脑还是脑子有毛病啊,月份都不会输入?\a请再",s=0);goto start2;
}
else
switch (m)
{  
    case 1: 
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12: d=31; break;
    case 4:
    case 6:
    case 9:
    case 11: d=30; break;
    case 2:
if((y%4!=0)||(y%100==0)&&(y%400!=0))
    d=28;
else d=29; 
    m3=60+jin,m4=91+jin,m5=121+jin,m6=152+jin,m7=182+jin;
    m8=213+jin,m9=244+jin,m10=274+jin,m11=305+jin,m12=335+jin;
                    break;    /* 是闰年2月要加一天*/
    default :printf("错误,请重新输入\n\n");    
} 
    printf("%d年的%d月有%d天\n\n",y,m,d);   /*自动识别2006年某月的天数*/
goto start3;                        
start3:;
    printf("输入%d年%d月的生产日期:\n\n",y,m);
    scanf("%d",&d2);
if (0>d2||d<d2)           /*与当月天数比较,纠正用户输入错误*/
{ while (s<1)
    {printf("您输入日期有误,请重新",s++);goto start3;}
    {printf("你是第一天玩电脑还是脑子有毛病啊,生产日期都不会输入?\a请再",s=0);goto start3;}
}
else 
switch (m)         /*最菜的计算列表,请高手指点有没有更好的办法*/
{
    case 1: u=(d2+jin)/7+(((d2+jin)%7)>0);break;
    case 2: u=(d2+31+jin)/7+(((d2+31+jin)%7)>0);break;
    case 3: u=(d2+m3+jin)/7+(((d2+m3+jin)%7)>0);break;
    case 4: u=(d2+m4+jin)/7+(((d2+m4+jin)%7)>0);break;
    case 5: u=(d2+m5+jin)/7+(((d2+m5+jin)%7)>0);break;
    case 6: u=(d2+m6+jin)/7+(((d2+m6+jin)%7)>0);break;
    case 7: u=(d2+m7+jin)/7+(((d2+m7+jin)%7)>0);break;
    case 8: u=(d2+m8+jin)/7+(((d2+m8+jin)%7)>0);break;
    case 9: u=(d2+m9+jin)/7+(((d2+m9+jin)%7)>0);break;
    case 10: u=(d2+m10+jin)/7+(((d2+m10+jin)%7)>0);break;
    case 11: u=(d2+m11+jin)/7+(((d2+m11+jin)%7)>0);break;
    case 12: u=(d2+m12+jin)/7+(((d2+m12+jin)%7)>0);break;
}
start4:;
   printf("%d年%d月%d日是%d年的第 %d 周,感谢使用本软件!\n\n",y,m,d2,y,u);
goto start;
}
这段程序编译后运行时,如输入点 . 则会被printf函数刷屏,为什么?
如何纠正错误呢?
[此贴子已经被作者于2007-10-2 0:32:51编辑过]

 
											





 
	    

 
											


 写的不错,题目完种解
写的不错,题目完种解