-1

うーん、私のループは 1 行おきにスキップします。この 5 15 16 17... とこの 17 37 5... を比較して、数字が一致するタイミングを見つけようとしています。そして、なぜ行をスキップしているのかわかりません。

for(int j=0;j<fileMaxLines;j++){

        for(int k=0;k<fileMaxLines;k++){
            //cout <<"            " <<EInfo[j].idSE <<endl;
            if(EInfo[j].idSE == ETran[k].idIV){
                temphours = ETran[k].numbOfHoursIV;

                 cout <<EInfo[j].idSE << " -->" << ETran[k].idIV;
                 cout << "right"<<endl;
                 k=fileMaxLines;
                 break;
            }
            else{
                //cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
            }
            cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
        }
        EInfo[j].numbOfHoursSE = temphours;
             j++;

      }
4

1 に答える 1

4

あなたはj2倍に増えています:

for(int j=0;j<fileMaxLines;j++){ // here

    for(int k=0;k<fileMaxLines;k++){
        //cout <<"            " <<EInfo[j].idSE <<endl;
        if(EInfo[j].idSE == ETran[k].idIV){
            temphours = ETran[k].numbOfHoursIV;

             cout <<EInfo[j].idSE << " -->" << ETran[k].idIV;
             cout << "right"<<endl;
             k=fileMaxLines;
             break;
        }
        else{
            //cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
        }
        cout <<EInfo[j].idSE << " -->" << ETran[k].idIV << endl;
    }
    EInfo[j].numbOfHoursSE = temphours;
         j++; // and here

  }
于 2012-12-15T09:07:37.473 に答える