C语言初学 请高手帮我解决下问题 谢谢! 给出年.月.日.计算该日是该年的第几天

来源:百度知道 编辑:UC知道 时间:2024/05/01 20:11:22
要求给出程序的流程图.实现思想

#include <stdio.h>
void main()
{
int year,month,day,and(int x,int y,int z);
printf("输入年月日\n");
scanf("%d%d%d",&year,&month,&day);
printf("%d\n",and(year,month,day));
}
int and(int x,int y,int z)
{
int i,j,k=0;
int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31,30,31}};

if((x%100)&&!(x%4)||!(x%400))i=1;
else i=0;
for(j=0;j<y;j++)
k=k+a[i][j];
k=k+z;
return k;
}

实现思想?先必须知道你要算的天数在年份中有闰年的可能,所以要算闰年是否,当然这有个前提就是如果你算的天数没超过2月那就可以不用算闰年,if((x%100)&&!(x%4)||!(x%400))这个算闰年的。如果是闰年那么i=1,这样就可以确定i=1就是数组a[1][13]里相加。这里放的是闰年每月天数。a[0][13]就放的不是闰年。然后就是天数相加了,用数组你可以很简单的看出怎么相加~k=k+z;。

/* 给出年、月、日,计算该日是该年的第几天 */

# include <stdio.h>

# include <conio.h>

int sum_day(int month, int day);

int leap(int year);

void main()