#includestdio.h#includestdlib.h#defineLEN12structmonth1{intmonth;intdate;};structmonth2{intmonth;intdate;};structmonth1months1[LEN]={{1,31},{2,28},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31}};structmonth2months2[LEN]={{1,31},{2,29},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31}};intsum1(intm,intn,structmonth1*ptr){intsum=0,i;for(i=1;im;i){sum=ptr-date;ptr;}sum=n;returnsum;}intsum2(intm,intn,structmonth2*ptr){intsum=0,i;for(i=1;im;i){sum=ptr-date;ptr;}sum=n;returnsum;}intmain(void){intyear,month,date;puts(\"pleaseinputtheyear\");scanf(\"%d\",puts(\"inputthemonth:\");scanf(\"%d\",puts(\"inputthedate:\");scanf(\"%d\",if(year0==0){if(year@0==0)printf(\"%d\",sum2(month,date,months2));elseprintf(\"%d\",sum1(month,date,months1));}else{if(year%4==0)printf(\"%d\",sum2(month,date,months2));elseprintf(\"%d\",sum1(month,date,months1));}system(\"pause\");}以上是修改后的函数:原函数的问题是:四个printf(\"%d\",sum2(month,date,中不需要在取地址操作了,months2和months1就表示的是这个数组的首地址。还有我把函数sum1和函数sum2放在主函数前面,你就可以直接调用不需要在进行说明了。如果你不想把sum1和sum2函数放在main的前面得话,你就必须在mian函数里面进行说明,在mian外面是会出错的。修改方法:把intsum1(int,int,structmonth1*);intsum2(int,int,structmonth2*);放到mian里面就OK了
|