在while循环中更改数组的变量不起作用

时间:2017-05-18 16:00:09

标签: c++ arrays while-loop

我有一段示例代码,并想知道如何更改输出。

#include <iostream> 

using namespace std;

int main(){
int input;
string stat[2];
stat[0] = "a";
stat[1] = "b";
int j = 0;
int h = 0;
int i = 0;
while(h < 4){
    i=0;
    cout << stat[0] << endl;
    cout << stat[1] << endl;
    string stat[2];
    stat[0] = "c";
    stat[1] = "d";
    cout << stat[0] << endl;
        cout << stat[1] << endl;
        h++;
    }
}

目前的输出是: A,B,C,d,A,B,C,d,A,B,C,d,A,B,C,d,A,B,C,d

我想要的输出是: A,B,C,d,C,d,C,d,C,d,C,d,C,d,C,d,C,d,C,d

2 个答案:

答案 0 :(得分:1)

我修改了你的程序,现在它可以运行了:

#include <iostream>

using namespace std;

int main()
{
   string stat[2] = {"a","b"};
   int h = 0;
   while(h++ < 4)
   {
      cout << stat[0] << endl;
      cout << stat[1] << endl;
      stat[0] = "c";
      stat[1] = "d";
      cout << stat[0] << endl;
      cout << stat[1] << endl;
   }
}

问题在于,在while循环中,您声明了一个新的字符串数组,其外部数组的名称相同,因此删除了对第一个数组的引用。最后我删除了i和j因为你没有使用它。

答案 1 :(得分:0)

删除循环中的第二个字符串

while(h < 4){
    i=0;
    cout << stat[0] << endl;
    cout << stat[1] << endl;
    stat[0] = "c";
    stat[1] = "d";
    cout << stat[0] << endl;
        cout << stat[1] << endl;
        h++;
    }