我尝试创建一个大小为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
我不知道为什么会这样做,请让我知道我做错了什么。老实说,我可能会放弃阵列并坚持使用矢量......
谢谢。
答案 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;
使用未初始化的变量初始化数组并打印它们具有的垃圾值。