-1

我目前正在为我的班级作业编写伪代码,我想知道我将如何返回数组?

为了更好地了解我在寻找什么,该程序的目的是从用户输入的日期中添加和减去天/月/年。

编辑:根据要求提供示例。我们将从今天开始。

cout << "Today's Date is August 23, 2013."
     << "Add Year: "
cin >> year
cout << "Add Month: "
cin >> month
cout << "Add Day: "
cin >> day

现在它将接受用户输入并对其进行操作,因此假设他们输入以下内容: 添加年份:5 添加月份:-9 日期:2

它需要如下所示

cout << "The modified date is: January 25, 2014"

现在是 2014 年,因为他们减去了足够多的月份来回溯一年,但是因为他们增加了 2 年,所以他们只会增加一年。

4

1 回答 1

0

这不是“重置”(这可能与将月份设置为数组中的第一个,即索引 0 处的月份相同),而是“包装”。

你可以用一个简单的 if 来做到这一点:

const char *monthNames[] = { "Jan", "Feb", ..., "Nov", "Dec" };
int month = 0;

--month;
if(month < 0)
  month += sizeof monthNames / sizeof *monthNames;

这通过首先减少(您可能不得不month -= 2返回更多),然后检查值是否下溢,即变为负数来工作。如果是这样,则添加数组 (12) 中的元素数,这将使它正确,因为例如 -1 + 12 = 11(12 月)。

注意:初始化程序...中的monthNames应该是其余月份。

于 2013-08-23T13:17:44.953 回答