C++ 中的数组分配错误,我的代码有什么问题?
Array assignment error in C++, What is wrong with my code?
我正在 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;
}
}
提前致谢。
您在设置 numbers[counter]
的值后递增 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++;
}
}
您在递增变量 counter
后输出数组的未初始化元素 counter
。
counter++;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
错误的原因是使用了不合适的循环。
最好使用 for 循环而不是 while 循环。
例如
for ( int counter = 0; counter < array_size; counter++ ){
numbers[counter] = 25 * counter;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
}
注意不带参数的main函数要这样声明
int main()
也就是说你不能省略return类型的函数。
更改此代码
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++;
}
我正在 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;
}
}
提前致谢。
您在设置 numbers[counter]
的值后递增 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++;
}
}
您在递增变量 counter
后输出数组的未初始化元素 counter
。
counter++;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
错误的原因是使用了不合适的循环。
最好使用 for 循环而不是 while 循环。
例如
for ( int counter = 0; counter < array_size; counter++ ){
numbers[counter] = 25 * counter;
cout << "number[" << counter << "] = " << numbers[counter] << endl;
}
注意不带参数的main函数要这样声明
int main()
也就是说你不能省略return类型的函数。
更改此代码
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++;
}