蓝桥的第一道题,出错了,高手指点下
月份自增的那句为什么一直都执行不到,不知道程序出的问题还是我思想出问题了,高手指点下,谢谢程序代码:
#include<stdio.h> void pan(int,int*,int,int); main() { int ryear[13]={0,31,29,31,30,31,30,31,31,30,31,30,31}; int pyear[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int *p1=ryear,*p2=pyear; int (*pr)[13]; int cyear,cyue,cri,num;//ryear为闰年,pyear为平年,cyear为出生年,cyue为出生月,cri为出生日,num为多少天 printf("输入日期(yyyy-mm-dd):\n"); scanf("%d-%d-%d",&cyear,&cyue,&cri); printf("多少天?\n"); scanf("%d",&num); pan(&cyear,pr,p1,p2);//判断是否为平年、闰年,用数组指针指向对应的月份 for(;(num>=1);){//2 天数超过1时运行下面语句 if(cyue<13){//1 如果月份不超过12月份时 if(cri<*(pr+cyue)){cri++;num--;}//如果当月日期没有超过月底的日期时,自增 else{cri=1;cyue++;num--;}//如果超过了就月份自增,日期归1 }//1 else{cyear++;cyue=1;}//运行上面语句后,再次判断月份是否超过12月 pan(&cyear,pr,p1,p2); }//2 printf("%d-%d-%d",cyear,cyue,cri); } void pan(int cyear,int *p,int *p1,int *p2)//判断是否为平年闰年 { if(((cyear%4==0)&&(cyear%100!=0))||(cyear%400==0)){ p=p1; } else p=p2; }