vector的push_back問題

1.已知vector中的push_back函數是把數字或者其他類型往最後放,但是為什麼這個代碼會出現我不想要的訊息?新手求大神指點 m(._.)m <(_ _)>感恩

<預期結果>
輸入西元年,結果依照閏年有所不同
傳遞一個1~12月的天數

<我的代碼>

vector <int> days;
int years;
cout << "Please give me your years:"<<endl;
while (cin >> years) {
    if (years == 0)
        break;
}
if (years % 4 == 0 && years % 100 != 0) {
    for (int i = 1; i != 13; i++) {
        if (i == 1 || 3 || 5 || 7 || 8 || 11) {
          days.push_back(31);
        }
        if (i == 2) { days.push_back(29); }
        else{ days.push_back(30); }
    }
}
else {
    for (int i = 1; i != 13; i++) {
        if (i == 1 || 3 || 5 || 7 || 8 || 11) {
            days.push_back(31);
        }
        if (i == 2) { days.push_back(28); }
        else { days.push_back(30); }
        
    }
}

for (auto r : days) { cout << r << " "; }
return 0;

<得出結果>
clipboard.png
明明是12個月,我卻得到25個數字
我希望第二個數字代表2月,但數字卻不是28或29天

阅读 4k
3 个回答

每一个月月份只有一种天数

 int main()
 {
     vector <int> days;
     int years;
     cout << "Please give me your years:"<<endl;
     while (cin >> years) {
         if (years == 0)
             break;
     }   
     if (years % 4 == 0 && years % 100 != 0) {
         for (int i = 1; i != 13; i++) {
             if (i == 2) { days.push_back(29); continue;}
             if (i == 1 || i==3 || i==5 || i==7 || i==8 || i==11) {
                 days.push_back(31);
             }
             else{ days.push_back(30); }
         }
     }   
     else {
         for (int i = 1; i != 13; i++) {
             if (i == 2) { days.push_back(28); continue;}
             if (i == 1 || i==3 || i==5 || i==7 || i==8 || i==11) {
                 days.push_back(31);
             }
             else { days.push_back(30); }
 
         }
     }   
 
     for (auto r : days) { cout << r << " "; }
     return 0;
 }

你这个

while (cin >> years) {
    if (years == 0)
        break;
}

这个循环结果是错的, 根据你的输入, year最终都是0.
i == 1 || 3 || 5 || 7 || 8 || 11判断条件错了, i == 1 || i == 3 不是直接|| 3.

另外我發現我居然天數對應的月份居然標錯了xD難怪數字看起來很奇怪

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题