更新两个数组以跟踪月和日

时间:2014-10-16 19:10:53

标签: c++ arrays loops if-statement

我很难更新两个数组 - 下面的代码似乎只更新了两天更新。

int month[365], day[365];
int countMonths[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int i = 0;
int currentmonth = 0;
int currentday = 1;
while(i < 365 &&  i < countMonths[currentmonth])
{
    month[i] = currentmonth+1;
    day[i] = currentday;
    i++;
    currentday++;

if(currentday > countMonths[currentmonth]);
   {
    currentmonth++;
    currentday = 1;
   }
}

2 个答案:

答案 0 :(得分:2)

if声明中,您有一个额外的分号

if(currentday > countMonths[currentmonth]);

你不应该那样。

答案 1 :(得分:1)

问题是你在while循环中遇到这种情况:i < countMonths[currentmonth] - 你停止迭代(因为i将是29而countMonths[1]是28),这就是为什么你的月份不是'递增。保持只有第一个条件,你应该是好的。