配列要素は、ゲームの位置を変更するには

] [問題の説明を入力配列要素の組、最大の第2および第1の要素トランスデューサ素子の位置、最小要素及び最後の要素トランスデューサ位置
[]入力配列の最初の行の長さの形態、第二のアレイ入力ラインに入力要素(スペースで区切られた、キャリッジリターン、停止)

最初の最小の要素数である最大秒数の最初の要素である:出力の最初の行は、[]出力形式

                    出力の2行目:後の位置トランスデューサアレイ
[6]サンプル入力

                    4 5 6 1 2 3

[42]出力サンプル

                    5 4 6 2 3 1 

要素が同一である[思考] 2つの配列データを定義し、[]とDATA1 []、キーボードを始めています。

    、データ内の最後から二番目の要素であるDATA1ソートにDATA1、その後の質問は二番目に大きいを見つけるように頼ま押しは、見つかった場合、ちょうどこの場所を見つけるためにデータの最初の要素になります。

    元の値、位置データの最初の要素に、次いで最後から二番目のDATA1要素が何である置き換える、即ちデータ要素が0のビットを置き換えます。

    アレイ内のスイッチング素子のこの実現は、要求の対象である(いくつかの問題が存在し得ます)。

    同様の要素の最後の位置で最小の交換を実現します。

    プログラムの上に配置されるレコード:最低で二番目に大きい値の位置を記録することがあります。すなわち、2つのためのサイクルの始まりです

    代わりに2つのサイクルのためのプログラムが間違っている可能性があります。

    最後に、必要な合計出力ビットとして。

 

[コード:]

パッケージテキスト1;
輸入java.util.Arrays。
インポートjava.util.Scanner;
パブリック抽象クラス12 {
 パブリック静的スキャナSC =新しいスキャナ(System.in)。
 パブリックstatic int型N = sc.nextInt()。
 公共の静的なint型のX;
 公共の静的なint型のZ;
 パブリック静的無効メイン(文字列[] args){
  INT []データ=新しいINT [N]。
  INT [] DATA1 =新しいINT [N]。
  以下のために(INT iが= 0、I <N; I ++){
   データ[I] = sc.nextInt()。
   DATA1 [I] =データ[I];
  }
  は、Arrays.sort(DATA1)。
  以下のために(INT I = 0、I <N; I ++){
   IF(データ[I] == DATA1 [N - 2]){
    Z = I。
   }
   {(データ[I] == DATA1 [0])であれば
    、X = I。
   }
  }
//二番目に大きい値交換が達成さ:
  のために(INT I = 0、I <N - 、I ++){
   IF(DATA [I] == DATAL [N-- 2]){
    DATA [I] = DATA [0]。
    データ[0] = DATAL [N - 2];
    BREAK;
   }
  }
//实现最小值的交换:
  (INTがI = 0、I <data1.length; I ++)用{
   IF(データ[I] == DATA1 [0]){
    データ[I] =データ[N - 1]。
    データ[N - 1] = DATA1 [0]。
    ブレーク;
   }
  }
  System.out.print(X + 1 + "「)。
  System.out.println(Z + 1)。
  以下のために(INT iが= 0、I <N; I ++){
   System.out.print(データ[I] + "「)。
  }
 }
}
 これは私の放課後の仕事で、答えは自分自身を書くことです。あなたがより良い方法を持っている場合は、本当に私は私をお伝えしたいと思います。それとも私のコードのための改善のための領域があり、私に知らせてください。
ラインは、(私が毎日表示されます)、相談を歓迎読み取ることができない場合はもちろん、私は理解して見ていると簡単に考えを組み合わせるために書いたコードがあります。

おすすめ

転載: www.cnblogs.com/HeSC980513/p/11869999.html
おすすめ