java 找数组中的最大数放到最前面

样例输入
5
1 2 3 4 5
样例输出
5 2 3 4 1我是新手啊,不要用递归和函数的方法做啊,求解啊.顺便给注释,谢谢

public class FindMax {
public static void main(String[] args) {
int []arr=new int[]{1,2,3,4,5};//初始化数组
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+",");//打印数组元素
System.out.println();
int max=0;
int index=0;
for(int i=0;i<arr.length;i++){//找出数组中最大的元素,赋值给max
if(arr[i]>max){
max=arr[i];
index=i;//保存最大元素在数组中的索引位置
}
}
int []arr1=new int[5];//初始化数组arr1
int j=0;
for(int i=0;i<5;i++){//将除max外的元素赋值给arr1数组的后4位
if(arr[i]!=max){
arr1[j+1]=arr[i];
j++;
}
}
arr1[0]=max;//将最大值赋值给arr1的第一个元素
for(int i=0;i<arr1.length;i++)
System.out.print(arr1[i]+",");//打印出重新排后的数组
System.out.println();
}
}追问

回答的很好,但是数字都是由键盘输入的要怎么搞啊

追答

package algorithm;
import java.util.Scanner;
public class FindMax {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组中元素的个数:");
int n=sc.nextInt();
int arr[]=new int[n];
for(int i=0;imax){
max=arr[i];
index=i;
}
}
int []arr1=new int[n];
int j=0;
for(int i=0;i<n;i++){
if(arr[i]!=max){
arr1[j+1]=arr[i];
j++;
}
}
arr1[0]=max;
for(int i=0;i<arr1.length;i++)
System.out.print(arr1[i]+",");
System.out.println();
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-11-17
int num[] = {1,2,3,4,5};
int index;//最大值位置
int maxnum;//最大值数值
index = 0;//预设值
maxnum = num[0];//预设值
for(int i=1;i<num.length;i++){//循环得到最大值的位置和值
if(num[i]>=maxnum){
index = i;
maxnum = num[i];
}
}
num[index] = num[0];//把最大值的位置里放入最一位置的数
num[0] = maxnum;//把第一位置的数据换成最大值
第2个回答  2012-11-17
public class MySort {
public static void main(String[] args) {

MySort sort = new MySort();
int[] arr = new int[]{3,22,11,5,400,99,20,22,5};
sort.sort(arr);
for(int i : arr){
System.out.print(i+",");
}
}

public void sort(int[] targetArr){//大到小的排序

int temp = 0;
for(int i = 0;i<targetArr.length;i++){
for(int j = i;j<targetArr.length;j++){

if(targetArr[i]<targetArr[j]){

/*//方法一:
temp = targetArr[i];
targetArr[i] = targetArr[j];
targetArr[j] = temp;

//方法二:
targetArr[i] = targetArr[i] + targetArr[j];
targetArr[j] = targetArr[i] - targetArr[j];
targetArr[i] = targetArr[i] - targetArr[j];*/
}

}
}
}
}
第3个回答  推荐于2016-07-18
public static int getMax(int[] nums){
    int max;
    for(int num : nums){
        if(num > max){
            max = num;
        }
    }
    return max;
}

第4个回答  2012-11-17
初学递归应该简单些。。。。