注册 登录
编程论坛 C++教室

各位大神,下面的程序有什么问题啊?

我叫赫卡忒 发布于 2016-10-30 17:44, 2665 次点击
void Date::CalDay_date() //定义成员函数,计算该天是当年的第几天
    {
        int nLDays={31,29,31,30,31,30,31,31,30,31,30,31};
        int nCDays={31,28,31,30,31,30,31,31,30,31,30,31};
        int res=0;
    if((year%100!=0&&year%4==0)||year%400==0)
    {
        for(int i=0;i!=month-1;++i)
        {
            res+=nLDays[i];
        }
        res+=day;
    }
    else
    {
        for(int i=0;i!=month-1;++i)
        {
            res+=nCDays[i];
        }
        res+=day;
    }
    cout<<"一天是这一年的第x天"<<endl;
    cout<<"x"<<"="<<res<<endl;
   
    }
        
7 回复
#2
我叫赫卡忒2016-10-30 17:50
编译器显示的问题是“scalar object 'nLDays'requirs one element in initializer ”,但我不太懂怎么修改
#3
炎天2016-10-30 18:15
nLDays nCDays  后面加[12]

[此贴子已经被作者于2016-10-30 20:24编辑过]

#4
令狐少侠562016-11-01 14:58
nLDays是数组不是整型变量
#5
BBOY愿愿2016-11-02 18:16
回复 楼主 我叫赫卡忒
把数组名的后面   加上   [12]或者  []   都行
#6
王子的新衣2016-12-14 16:09
用二维数组来做更容易
#7
StadyC2016-12-15 13:18
int a[12];    //这才是定义数组
#8
damzkk2016-12-16 15:17
#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
void CalDay_date(int year,int month,int day) //定义成员函数,计算该天是当年的第几天
    {
        int nLDays[12]={31,29,31,30,31,30,31,31,30,31,30,31};                     //主要是这里出现了问题,注意数组定义写法
        int nCDays[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        int res=0;
    if((year%100!=0&&year%4==0)||year%400==0)
    {
        for(int i=0;i!=month-1;++i)
        {
            res+=nLDays[i];
        }
        res+=day;
    }
    else
    {
        for(int i=0;i!=month-1;++i)
        {
            res+=nCDays[i];
        }
        res+=day;
    }
    cout<<"一天是这一年的第"<<res<<"天"<<endl;
   
    }

int main(){
    int n,y,r;
    while(1){
        cin>>n>>y>>r;
        CalDay_date(n,y,r);
    }
}

[此贴子已经被作者于2016-12-16 15:19编辑过]

1