下面的代码是不是应该使用for循环将所有数组元素初始化为0?
#include<iostream>
using namespace std;
int main()
{
int a[10];
for(int i=0; i==9; i++){
a[i] = 0;
}
for(int i=0;i<10;i++){
cout << a[i] << endl;
}
}
输出: -
164752
6
0
0
-13120
0
-13211
0
0
0
答案 0 :(得分:3)
点击此处corrected-code
#include<iostream>
using namespace std;
int main()
{
int a[10];
for(int i=0; i<10; i++){ // <= i < 10 instead of i == 9
a[i] = 0;
}
for(int i=0;i<10;i++){
cout << a[i] << endl;
}
}
答案 1 :(得分:1)
不,因为for循环中的比较不正确。它只是检查i在开头是否为9,结果是假,因此,第一个for循环根本不执行。 正确的条件应该是i <= 9(或i <10)而不是i == 9,这是你在第二循环中写的。
答案 2 :(得分:0)
更正后的代码:
#include <iostream>
int main()
{
int a[10];
for (int i = 0; i != 10; i++)
a[i] = 0;
for (int i = 0; i != 10; i++)
std::cout << a[i] << '\n';
}
答案 3 :(得分:0)
在像for (int i = 0; i == 9; i++)
这样的for循环中,第二个表达式(i == 9
是继续运行循环的条件。由于i
是第一次为0通过循环,i == 9
为false,循环立即结束;继续执行下一个语句。将其更改为i < 10
;这样,在第一次循环时,{{1} }为0,条件为真,并且继续执行。实际上,它会持续到i
变为false,这在循环体的第十次执行之后发生。