ベクトルの隣接要素の各ペアの合計を出力しようとしています。しかし、以下のコードは私に正しい結果を与えていません。誰もがこれで私を助けることができますか?ベクトル要素の各ペアの合計を出力する - C++
メインint型() {
vector <int> num(10);
vector <int> res(5);
int get = 0;
int range = 0;
for (int i = 0; i != 10; ++i) {
cin >> get;
num.push_back(get);
}
while (range != num.size()) {
int c = 0;
int c1 = c + 1;
res.push_back(num[c] + num[c1]);
if (c == 0)
c = 1;
c *= 2;
++range;
}
cout << res[7];
for (int u = 0; u != res.size(); ++u) {
cout << res[u] << " ";
}
return 0;
}
アップデート: -
あなたはコメント欄で述べたように、私はこのコードを変更しましたが、私はそれをコンパイルするとき私にデバッグエラーが表示されます。
「num」ベクトルに1〜10の整数を読み取ることができました。しかし、ベクトルにすべての整数を読み込んだ後にEnterキーを押すと、このデバッグエラーが発生します。
int main()
{
vector <int> num;
vector <int> res;
int get = 0;
int range = 0;
int c = 0, c1 = 0;
for (int i = 0; i != 10; ++i) {
cin >> get;
num.push_back(get);
}
while (range != num.size()) {
c1 = c + 1;
res.push_back(num[c] + num[c1]);
if (c == 0)
c = 1;
c *= 2;
++range;
}
for (int u = 0; u != res.size(); ++u) {
cout << res[u] << " ";
}
keep_window_open();
return 0;
}
あなたはそれをステップバイステップでデバッグしようとしたことがありますか? –
cは、whileループ内で宣言しているので、常に0、c1常に1と思われます。 – LangerJan
'while()'ループのすべての反復で 'c'と' c1'を初期化します。それは意図されていますか?デバッガでプログラムを実行し、行単位で実行するのが最適です。 –