aizu online judgeのITP1_9_Bの問題で#include \u0026lt;bits/stdc++.h\u0026gt;using namespace std;int main(){string card; cin \u0026gt;\u0026gt; card; while (card != \u0026quot;_\u0026quot;){ int n; cin \u0026gt;\u0026gt; n; for (int i=0; i\u0026lt;n; i++){ int x; cin \u0026gt;\u0026gt; x; x = x % card.size(); card = card.substr(x) + card.substr(0, x); } cout \u0026lt;\u0026lt; card \u0026lt;\u0026lt; endl; cin \u0026gt;\u0026gt; card; }}というコードを書くと出力で正しい出力のあとに_を繰り返してしまいます。原因を教えてください。(入力)aabc3121vwxyz234-

1件の回答

回答を書く

1071822

2026-01-05 07:30

+ フォロー

「なにかの勘違い」じゃないかしら?



\u0026gt; 正しい出力のあとに_を繰り返してしまいます。

というのが何を意味しているかによりますけれど。

'_'ではなく全角の'_'を入力してループが終わらない、とかいう話ではないですよね?



このプログラムで、終了記号として'_'を入力したときその'_'はstdoutには出力されないし、繰り返しもしていない様子ですが。



$ cat test.cpp

#include \u0026lt;iOStream\u0026gt;

using namespace std;



int main() {

  string card;

  cin \u0026gt;\u0026gt; card;

  while (card != \u0026quot;_\u0026quot;) {

    int n;

    cin \u0026gt;\u0026gt; n;

    for (int i = 0; i \u0026lt; n; i++) {

      int x;

      cin \u0026gt;\u0026gt; x;

      x = x % card.size();

      card = card.substr(x) + card.substr(0, x);

    }

    cout \u0026lt;\u0026lt; card \u0026lt;\u0026lt; endl;

    cin \u0026gt;\u0026gt; card;

  }

}

$ g++ test.cpp

$ ./a.out \u0026gt;out.txt

aabc

3

1

2

1

vwxyz

2

3

4

_

$ cat out.txt

aabc

xyzvw

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有