我試圖分別提示用戶輸入物品和這些物品的數量。但是當我運行程式時,它正確地顯示了第一個向量中的元素,而不是第二個向量中的元素。
#include <iostream>
#include <vector>
using namespace std;
int main(){
// Declaring vectors
vector <string> items{};
vector <int> quantity{};
cout << "Enter name of items." << endl;
// Read input to vectors
for(int i{1}; i <= 3; i){
string item{};
cin >> item;
items.push_back(item);
}
cout << "Enter quantity of each item." << endl;
for(int i{1}; i <= 3; i){
int num{};
cin >> num;
quantity.push_back(num);
}
// Display data
for(auto item: items){
int i{0};
cout << "Item: " << item << " - " << "Quantity: " << quantity.at(i) << endl;
i;
cout << "--------------------" << endl;
}
return 0;
}
輸出
Enter name of items.
meat fish milk
Enter quantity of each item.
10 20 30
Item: meat - Quantity: 10
--------------------
Item: fish - Quantity: 10
--------------------
Item: milk - Quantity: 10
--------------------
我嘗試列印出quantity.at(1)并且它正確地顯示了20,如果我錯過了一些明顯的東西,我提前道歉。我對這門語言很陌生。
uj5u.com熱心網友回復:
您可以通過將“i”變數從上次迭代中取出來修復它
uj5u.com熱心網友回復:
您總是將 i 設定為等于第 0 個元素。而是將 i 的創建移到回圈之外:
int i{0};
for(auto item: items){
cout << "Item: " << item << " - " << "Quantity: " << quantity.at(i) << endl;
i;
cout << "--------------------" << endl;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/324522.html
上一篇:選擇串列中每個串列的第一個元素
下一篇:如何讓這段C代碼更好,更易讀
