#C 判断闰年
问题:应用了数组,没有定义数组元素的个数。
闰年的处理单独写run函数,结果存在数组里return ,在main中调用run函数。
结果,每次结果的第二个数都是1,比如2004,1,2008,非常不解。
解决:声明数组的时候,写好元素个数。
源代码:
/*************************************************************************
> File Name: 2_3.c
> Author: Crow
> Mail: qnglsk@163.com
> Created Time: Fri 30 Nov 2018 05:22:09 PM CST
************************************************************************/
#include <stdio.h>
//鍒ゅ畾2000鈥斺€?500骞翠腑鐨勬瘡涓€骞存槸鍚︿负闂板勾锛屽苟灏嗛棸骞村勾鍙疯緭鍑恒€?//
//
int i,j;
int r=0;
int run(int x,int y);
int years[3000/4];// here is the question.
int main()
{
int a,b;//a涓哄垵濮嬪勾鍙凤紝b涓虹粓姝㈠勾鍙枫€? printf("please input initial year and terminational year:\n");
printf("separate them with space\n");
scanf("%d %d",&a,&b);
//
if(a>b)
{
printf("Invalid Input!!!!!!!!!!!!!!!!\n\n\r");
exit(0);
}
else
run(a,b);
//杈撳嚭骞村彿
printf("%d 鍒?d 骞翠腑锛屽涓嬪勾鍙锋槸闂板勾锛歕n",a,b);
for(i=0;i<=r-1;i++) // notice this 'r'
printf("%d\t",years[i]);
printf("\n\n\n");
return 0;
}
int run(int x,int y)
{
for(j=x;j<=y;j++)
{
if(j%100!=0&&j%4==0)
{
years[r]=j;
r=r+1;
}
else if(j%100==0&&j%400==0)
{
years[r]=j;
r=r+1;
}
}
return years;
}