C语言流程图和程序

输入某年某月某日,判断这一天是这一年的第几天?

第1个回答  2018-01-18
#include <stdio.h>

int leap_year(int n)
{
    if(n%400==0||(n%4==0 && n%100!=0))
        return 1;
    else
        return 0;
}
int main()
{
    int year,month,day;
    int dayCount=0,i;
    int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入当前的年,月,日: ");
    scanf("%d-%d-%d",&year,&month,&day);
    for(i=0;i<month-1;i++)
        dayCount+=mon[i];
    if(month>2)
        dayCount+=day+leap_year(year);
    else
        dayCount+=day;
printf("该日是该年的第几天: %d\n",dayCount);
    return 0;
}

//示例运行结果
F:\c_work>a.exe
请输入当前的年,月,日: 2018-1-18
该日是该年的第几天: 18

F:\c_work>a.exe
请输入当前的年,月,日: 2018-10-1
该日是该年的第几天: 274

画流程图这个需要专门的画图工具,这个比较麻烦,所以我就直接给你程序代码和运行结果了。

本回答被网友采纳
第2个回答  2018-01-18

#include<stdio.h>
int main ()
{int i,y,m,d,d1,mon[12]={0,31,28,31,30,31,30,31,31,30,31,30};
scanf("%d%d%d",&y,&m,&d);
d1=d;
mon[2]+=y%4==0&&y%100||y%400==0;
for(i=1;i<m;i++)d1+=mon[i];
printf("%d-%d-%d is the No.%d day of then year\n",y,m,d,d1);
return 0;
}