为什么我不能看到循环输出(C++简单代码)?

41zrol4v  于 2023-01-10  发布在  其他
关注(0)|答案(3)|浏览(154)

我想根据循环中的代码编辑p2中的数字。但是如果我试图写出p2中的实际数字,我在输出中看不到任何东西。我应该做什么改变才能看到它呢?

#include <iostream>

using namespace std;

int main()
{
        
    int p1[10]={-5,-8,0,5,0,-8,-11,-2,1,-7};
    int p2[10]={0,0,0,0,0,0,0,0,0,0};
    
    for(int i; i >0; i++){
        p2[i] = p2[i] - p1[i];
        cout << p2[i];
    }
    
}
pdsfdshx

pdsfdshx1#

正如Ilya所指出的,你需要改变for循环中的条件,现在,在for循环的开始,i = 0,所以for循环永远不会开始,把它改为:

#include <iostream>

using namespace std;

int main()
{
        
    int p1[10]={-5,-8,0,5,0,-8,-11,-2,1,-7};
    int p2[10]={0,0,0,0,0,0,0,0,0,0};
    
    for(int i = 0; i < 10; i++){
        p2[i] = p2[i] - p1[i];
        cout << p2[i];
    }
    
}
gfttwv5a

gfttwv5a2#

由于没有初始化i的值,因此它采用存储在其位置中的随机值。
因此,只需使i为0,然后循环执行,直到10。

#include <iostream>

using namespace std;

int main()
{
        
    int p1[10]={-5,-8,0,5,0,-8,-11,-2,1,-7};
    int p2[10]={0,0,0,0,0,0,0,0,0,0};
    
    for(int i = 0; i < 10; i++){
        p2[i] = p2[i] - p1[i];
        cout << p2[i];
    }
    return 0;
}
yqkkidmi

yqkkidmi3#

因为没有初始化i变量,它取一个int类型的随机数,导致循环行为异常。要使它正常工作,需要使i=0

int p1[10]={-5,-8,0,5,0,-8,-11,-2,1,-7};
int p2[10]={0,0,0,0,0,0,0,0,0,0};

for(int i=0; i < sizeof(p1)/sizeof(p1[0]); i++){
    p2[i] = p2[i] - p1[i];
    cout << p2[i];
}

sizeof(p1)/sizeof(p1[0])是数组元素的计数。

相关问题