使用先前定义的变量

时间:2015-11-06 11:59:05

标签: c++ arrays

我尝试创建一个大小为12的简单数组,以保存一年中的所有月份。这几个月是整数,表示该月的天数。但我得到了一些非常奇怪的行为(如下所示)。

#include <iostream>
using namespace std;

int main()
{
  int sep, apr, jun, nov = 30;
  int jan, mar, may, jul, aug, oct, dec = 31;
  int feb = 28;
  int year = 1900;
  if(year%4 == 0 && year%100 != 0)
    feb = 29;
  if(year%100 == 0 && year%400 == 0)
    feb = 29;

  int months[12] = {jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec};

  for(int i = 0; i < 12; i++)
    cout << months[i] << endl;

  return 0;
}

这是它输出的内容:

4196853
28
0
0
383843232
-1082535160
54
4196784
4195939
0
30
31

我不知道为什么会这样做,请让我知道我做错了什么。老实说,我可能会放弃阵列并坚持使用矢量......

谢谢。

2 个答案:

答案 0 :(得分:3)

int sep, apr, jun, nov = 30;

仅初始化nov。它应该是

int sep = 30, apr = 30, jun = 30, nov = 30;

答案 1 :(得分:1)

int sep, apr, jun, nov = 30;应为int sep = 30 , apr=30, jun = 30, nov = 30;

int jan, mar, may, jul, aug, oct, dec = 31;应为int jan=31, mar=31, may=31, jul=31, aug=31, oct=31, dec = 31;

使用未初始化的变量初始化数组并打印它们具有的垃圾值。