如何将导致用户输入的特定日期的所有日期相加?

时间:2015-02-14 19:41:31

标签: function loops boolean call

#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int total(int month, int days, int years);
bool leap();
int numdays(int month, int years);

int main()
{
    int month;
    int days;
    int year;
    cout << "Enter the Date like mm-dd-yyyy:\n";
    cin >> month >> days >> year;
    while (month <= 0 || month >= 13 || days <= 0 || days >= 32 || year < 1000)
    {
        cout << "You entered invalid information. Please re-enter date with a legitimate date:\n ";
        cin >> month >> days >> year;
    }
    total(month, days, year);
        return 0;
}
bool leap(int y)
{
    if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
        return true;
}
int total(int m, int d, int y)
{
    int total = 0;
    for (int i = 1; i < m; i++)
        total = total + numdays(i, y);
    total = total + d;
    return total;
}
int numdays(int m, int y)
{
    switch (m)
    {
    case 9:
    case 4:
    case 6:
    case 11:
        return 30;
    case 2:
        if (leap(y))
            return 29;
        else`enter code here`
            return 28;
    default:
        return 31;
    }
}

此代码的重点是将一年中的所有日期累计到用户输入的特定日期。在我输入日期后出于某种原因,这样的代码才停止运行。我不确定我是否正确调用函数或者我是否正在向函数发送正确的数据。如果有人可以提供帮助,那将不胜感激。

1 个答案:

答案 0 :(得分:0)

它没有收到对total的调用的返回值,然后将其打印出来,这样就可以使它看起来只是停止运行。

顺便说一下,跳跃应该在非闰年时返回假。