0

次のような2つのリストを出力するプログラムがあります。基本的には同じリストですが、逆ですが、最初は機能しますが、奇妙な出力が出力されます。これも以下に示します。

0123456789
9876543210

ただし、プログラムから得られる実際の出力は次のとおりです。

サンプル出力

私のコードの何が問題なのか誰か教えてください。なぜこの出力が得られるのかわかりません。

void createFile(){
  ofstream myfile;
  myfile.open ("TEST1.txt");
  for(int x = 0; x < 10; x++){
   myfile << x << "\n";
  }
  myfile.close();
}

void popArray(int array1[]){
  ifstream infile("TEST1.txt");

  int x;
  while(infile >> array1[x]){
    cout << array1[x];
  }

}

void reverseList(int array2[]){
  for(int x = 9; x > -1; x--){
    cout << setw(2) << array2[x];
  }
} 

void checkLists(int array1[], int array2[], int sizeOfArray){
  for(int x = array1[1]; x < sizeOfArray; x++){
    for(int y = array2[1]; x < sizeOfArray; x++){
        if(x == y)
            cout << "Palindrome" << endl;
        else{
            cout << "Not" << endl;
        }
    }
  }

} 


int main()
{
  int array1[10];
  int array2[10];

  createFile();
  popArray(array1);

  cout << "\n";

  reverseList(array1);

  cout << "\n";
  checkLists(array1, array2, 10);
}
4

3 に答える 3

0
for(int x = array1[1]; x < sizeOfArray; x++){
    for(int y = array2[1]; x < sizeOfArray; x++){if(x == y)
        cout << "Palindrome" << endl;
    else{
        cout << "Not" << endl;
    }
}

私はこれであなたのコードをこれに置き換える必要があります

 for(int x = 0; x < sizeOfArray; x++){
        for(int y = 0; y < sizeOfArray; y++){
if(array1[x]== array2[y])
            cout << "Palindrome" << endl;
        else{
            cout << "Not" << endl;
        }
    }
于 2013-04-18T09:34:12.670 に答える