有一个数组:{37,11,33,45,86,77} 将最小值和最大值交换位置并输出

ZHANG_JIA_GANG 2017-12-10 10:48:52
有一个数组:{37,11,33,45,86,77} 要求将最小值和最大值交换位置并输出,最大值和最小值已经求出来了,最大值和最小值交换位置,不知道怎么做了,请大神指教

class Demo1 {

public static void main(String[] args) {
int[] arr = {37,11,33,45,86,77};

int max = getMax(arr);

int min = getMin(arr);

for (int i = 0; i < 6;i++ ) {
System.out.println(arr[i]);
}



}

//获取最大值

public static int getMax(int[] arr1) {
int max = arr1[0];
for (int a = 1;a < arr1.length ;a++ ) {
if (arr1[a] > max) {
max = arr1[a];
}
}
return max;
}


//获取最小值
public static int getMin(int[] arr2) {
int min = arr2[0];
for (int i = 1;i < arr2.length ;i++ ) {
if (arr2[i] < min) {
min = arr2[i];
}
}
return min;
}




}
...全文
301 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Super_King_ 2017-12-17
  • 打赏
  • 举报
回复
小白一个 只是用自己的方法写的
public class Demo1 {
    public static void main(String[] args) {
        int[] arr = {37, 11, 33, 45, 86, 77};

        int max = getMax(arr);

        int min = getMin(arr);

        int indexMax = printArray(arr, max);
        System.out.println("最大数对应的下标是:" + indexMax);
        int indexMin = printArray(arr, min);
        System.out.println("最小数对应的下标是:" + indexMin);

        arr[indexMax] = min;
        arr[indexMin] = max;

        for (int i = 0; i < 6; i++) {
            System.out.println(arr[i]);
        }
    }

//获取最大值

    public static int getMax(int[] arr1) {
        int max = arr1[0];
        for (int a = 1; a < arr1.length; a++) {
            if (arr1[a] > max) {
                max = arr1[a];
            }
        }
        return max;
    }


    //获取最小值
    public static int getMin(int[] arr2) {
        int min = arr2[0];
        for (int i = 1; i < arr2.length; i++) {
            if (arr2[i] < min) {
                min = arr2[i];
            }
        }
        return min;
    }

    //遍历数组
    public static int printArray(int[] array, int value) {
        for (int i = 0; i < array.length; i++) {
            if (array[i] == value) {
                return i;
            }
        }
        return -1;//当if条件不成立时,默认返回一个负数值-1
    }
}
自由自在_Yu 2017-12-11
  • 打赏
  • 举报
回复
public static void main(String[] args) {
		int[] arr = { 37, 11, 33, 45, 86, 77 };
		int max = getMax(arr);
		int min = getMin(arr);
		System.out.println("最大值:"+arr[max]+",最小值:"+arr[min]);
		//交换
		int temp = arr[min];
		arr[min] = arr[max];
		arr[max] = temp;
		for (int i = 0; i < 6; i++) {
			System.out.print(arr[i] + " ");
		}
	}

	public static int getMax(int[] arr1) {
		int max = arr1[0];
		int index = 0; //最大值对应的下标
		for (int a = 1; a < arr1.length; a++) {
			if (arr1[a] > max) {
				max = arr1[a];
				index = a;
			}
		}
		return index;
	}

	// 获取最小值
	public static int getMin(int[] arr2) {
		int min = arr2[0];
		int index = 0; ////最小值对应的下标
		for (int i = 1; i < arr2.length; i++) {
			if (arr2[i] < min) {
				min = arr2[i];
				index = i;
			}
		}
		return index;
	}
Cathy313 2017-12-11
  • 打赏
  • 举报
回复
应该是先找到最大值最小值的下标,然后根据下标进行交换

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧