教えて!しごとの先生
教えて!しごとの先生
  • 解決済み

情報処理検定プログラミング1級の問題なんですがなんでその答えになるか分からず解説をお願いしたいです(>_<) 答えは(…

情報処理検定プログラミング1級の問題なんですがなんでその答えになるか分からず解説をお願いしたいです(>_<) 答えは(1)ア(2)イ です。

135閲覧

回答(2件)

  • ベストアンサー

    今回のプログラムは降順に並べ替えるので左側が大きい分には問題ありません。しかし、右側が大きい場合左と右を入れ替える必要があります。 hが左側、sが右側と考えてみましょう。 (1)は条件が正しい時にループに入ります。 ループの処理を見てみると、左側+1に左側の値を入れています。 左側の値が右側に入れ替わるのは、 左側より右側の方が大きい時です。 (2)はif文が正しい時の処理です。 条件を読み解くと、上のループ処理が行われなかった場合は何もしないようにする条件です。 つまり、右側の値を左側に持ってくる必要があります。 ループ条件を見るとhが0になるとループを抜けるのでh-1してしまうとhが-1になりエラーになるのでh+1にする必要があります。 トレースをしてみます。 ten [30,50••••,49] testに50が入ります hに1が入ります ループに入ります ten [50,50••••,49]になります hが0になります ループから抜け出します if文が正しいので処理を行います ten [50,30••••,49]になります 分かりにくくてすみません。

  • >情報処理検定プログラミング1級の問題 3つ目くらいまで整列したサンプルを考えるとラクですよ。 ___hs 01234 _4316 Ten=4, 3, 1, 6 s=4 h=3 の状態の時です。

    続きを読む

< 質問に関する求人 >

情報処理検定(東京都)

この条件の求人をもっと見る

< 質問に関する求人 >

プログラミング(東京都)

求人の検索結果を見る

もっと見る

この質問と関連する質問

    < いつもと違うしごとも見てみませんか? >

    覆面調査に関する求人(東京都)

    この条件の求人をもっと見る

    Q&A閲覧数ランキング

    カテゴリ: 資格

    転職エージェント求人数ランキング

    • 1

      続きを見る

    • 2

      続きを見る

    • 3

      続きを見る

    あわせて読みたい
    スタンバイプラスロゴ

    他の質問を探す

    答えが見つからない場合は、質問してみよう!

    Yahoo!知恵袋で質問をする

    ※Yahoo! JAPAN IDが必要です

    スタンバイ アプリでカンタン あなたにあった仕事見つかる