HDOJ 2016データの交換出力
2759 ワード
Problem Descriptionはn(n<100)個の数を入力し,その中の最小の数を探し出し,それを先頭の数と交換して出力する.
Input入力データには複数のグループがあり、各グループは1行を占め、各行の最初は整数nであり、このテストインスタンスの数値の個数を表し、それに伴ってn個の整数である.n=0は入力の終了を表し、処理しない.
Outputは各入力データに対して交換後の数列を出力し,各出力が1行を占める.
Sample Input 4 2 1 3 4 5 5 4 3 2 1 0
Sample Output 1 2 3 4 1 4 3 2 5
Input入力データには複数のグループがあり、各グループは1行を占め、各行の最初は整数nであり、このテストインスタンスの数値の個数を表し、それに伴ってn個の整数である.n=0は入力の終了を表し、処理しない.
Outputは各入力データに対して交換後の数列を出力し,各出力が1行を占める.
Sample Input 4 2 1 3 4 5 5 4 3 2 1 0
Sample Output 1 2 3 4 1 4 3 2 5
import java.util.Scanner;
class Main{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
if(n==0) return ;
int a[] = new int[n];
int min,k=0;
a[0]=sc.nextInt();
min = a[0];
for(int i=1;i<n;i++){
a[i]=sc.nextInt();
if(a[i]<min){
min=a[i];
k=i;
}
}
if(k!=0){
a[0]=a[k]^a[0];
a[k]=a[k]^a[0];
a[0]=a[k]^a[0];
}
System.out.print(a[0]);
for(int j=1;j<n;j++){
System.out.print(" "+a[j]);
}
System.out.println();
}
}
}