我正在 CodeBlocks 中嘗試此代碼,但結果是一些亂數!如果您檢查代碼并讓我知道我的錯誤是什么,我將不勝感激。它應該產生 25 的乘數:
#include <iostream>
using namespace std;
main(){
const int array_size = 10;
int numbers[array_size];
int counter = 0;
while(counter < array_size){
numbers[counter] = 25 * counter;
counter ;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
}
}
提前致謝。
uj5u.com熱心網友回復:
您counter在設定 的值后遞增numbers[counter]。在那之后。numbers[counter](具有 的新值counter)是一個新的未初始化元素。
您應該在列印后移動增量:
#include <iostream>
using namespace std;
int main(){
const int array_size = 10;
int numbers[array_size];
int counter = 0;
while(counter < array_size){
numbers[counter] = 25 * counter;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
counter ;
}
}
或者干脆避免使用陣列(在這種情況下):
#include <iostream>
int main(){
const int array_size = 10;
int counter = 0;
while(counter < array_size){
std::cout << "number[" << counter << "] = " << 25 * counter << std::endl;
counter ;
}
}
另一種方法是使用兩個回圈——一個用于初始化,一個用于列印:
#include <iostream>
using namespace std;
int main(){
const int array_size = 10;
int numbers[array_size];
int counter = 0;
while(counter < array_size){
numbers[counter] = 25 * counter;
counter ;
}
counter = 0;
while(counter < array_size){
cout << "number[" << counter << "] = " << numbers[counter] << endl;
counter ;
}
}
uj5u.com熱心網友回復:
在變數遞增后,您正在輸出陣列的未初始化元素counter。
counter ;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
錯誤的原因是使用了不適當的回圈。
而不是 while 回圈,最好使用 for 回圈。
例如
for ( int counter = 0; counter < array_size; counter ){
numbers[counter] = 25 * counter;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
}
請注意,沒有引數的函式 main 應宣告為
int main()
那就是你不能省略函式回傳型別。
uj5u.com熱心網友回復:
更改此代碼
const int array_size = 10;
int numbers[array_size];
int counter = 0;
while(counter < array_size){
numbers[counter] = 25 * counter;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
counter ;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/454302.html
