- 締切済み
大至急お願いします
下記のプログラムが終了した時点でのj の値を示しなさい。 リストの初期値 L[1] 35 L[2] 10 L[3] 24 L[4] 22 L[5] 28 L[6] 14 L[7] 30 L[8] 8 i = 1; j = 8; sv = 22; while ( i <= j ) { while ( L[ i ] < sv ) i = i + 1; while ( L[ j ] > sv ) j = j - 1; if ( i <= j ) { temp = L[ i ] ; L[ i ] = L[ j ] ; L[ j ] = temp; i = i +1; j = j - 1; } } jは28になるのが正しいですか? 初期値は横一列に並んでましたが、横にしたら文章がずれてしまうので、縦一列にしました。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- jjon-com
- ベストアンサー率61% (1599/2592)
http://okwave.jp/qa/q7596676.html の私の回答ANo.3
- ferien
- ベストアンサー率64% (697/1085)
>jは28になるのが正しいですか? j=3 だと思います。
- asuncion
- ベストアンサー率33% (2127/6289)
>jは28になるのが正しいですか? という問いに対する答えは、「正しくない」です。 理由:j の初期値は8である。また、j の値を変更するコードは >while ( L[ j ] > sv ) j = j - 1; >j = j - 1; } 上記2箇所だけであり、そのいずれも j の値を減らしている。 よって、j が28になることはない。
- asuncion
- ベストアンサー率33% (2127/6289)
数学とどういう関係があるのかよくわかりません。 何かのプログラミング言語で書かれているようですが、実行する環境をお持ちであれば、 提示のコードを実行した後で変数 j の値を出力するようなコードを追加すればすむと思います。