質問: 1. 番号リスト### 無限ループを終わらせたいです 2つの整数 n, k を入力する (ただし, 0 #define size 512 int compare(int, int[], int[], int, int); int main(void) { int i, n, k; int a[size], b[size]; fprintf(stderr, " 0
回答: 提示されているコードでは,外側の(`for(;;)`の)ループを抜けた後に特段やるべきことがない(`return 0;`しかない)ので, > > if(scanf("%d", &b[i]) == EOF ){break;}//ここのbreakが動いていないと考えられます > > > の `break;` を `return 0;` としてしまっても良いですよね. ...そんな感じ(?)で, 多重ループの内側にある(:最も外側ではない)ループ内に多重ループ自体の終了判定があるような場合, 「多重ループ自体を関数に突っ込んでreturnで関数から抜ける」という形にすると楽な場合もあります. (大抵,そのような処理は,適切な名称が付与できる作業なんじゃないかと思うし) ``` void SomeWork( /*引数群*/ ) { //多重ループ for( /*略*/ ) { for( /*略*/ ) { if( XXX )return; //関数から抜ける } } } ```