用C语言写一个函数,给出年月日,计算该日是该年的第几天 用#include<iostream,h>开头的

如题所述

代码如下:

#include <iostream>
using namespace std;
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};
    cout<<"请输入当前的年,月,日: ";
cin>>year>>month>>day;
    for(i=0;i<month-1;i++)
        dayCount+=mon[i];
    if(month>2)
        dayCount+=day+leap_year(year);
    else
        dayCount+=day;
    cout<<"该日是该年的第几天: "<<dayCount<<endl;
    return 0;
}

追问

追答

你没加这条语句吧:using namespace std;

追问

追答

不要加逗号是空格隔开的,输入格式是:2016 1 1

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-06-14
#include<iostream>
using namespace std;
int main()
{
int year,month,day;
int i,j;
int mon[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
cout<<"请输入‘年 月 日’:";
cin>>year>>month>>day;
if(year%4==0&&(year%400==0||year%100!=0))//闰年
mon[2]=29;
if(month<1||day<1||month>12||mon[month]<day)
cout<<"日期格式非法!"<<endl;
else{
for(i=1,j=0;i<month;i++)
j += mon[i];
cout<<"这是当年的第 "<<j+day<<" 天!"<<endl;
}

return 0;
}

注意输入年月日中间要用空格。

相似回答