Java数组元素位置交换?

需求:1、定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}。2、将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印... 需求:1、定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}。 2、将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组。 展开
 我来答
百度网友090def6
2016-07-04 · TA获得超过2211个赞
知道小有建树答主
回答量:558
采纳率:100%
帮助的人:697万
展开全部

题目很简单,关键是思路

  1. 先找出最大值、最小值,并记住其位置

  2. 再做交换

具体参考下列代码

import java.util.Arrays;

public class Test {

/**
 * @param args
 */
public static void main(String[] args) {
// 第一步:定义数组
int[] arrs = { 6, 2, 9, 15, 1, 5, 20, 7, 18 };
// 第二步:找出最大值、最小值
int maxIndex = 0; // 最大值初始索引 = 0
int max = arrs[maxIndex];

int minIndex = 0; // 最小值初始索引 = 0
int min = arrs[minIndex];
for (int i = 1; i < arrs.length; i++) {
if (arrs[i] > max) {
max = arrs[i];
maxIndex = i;
}
if (arrs[i] < min) {
min = arrs[i];
minIndex = i;
}
}
System.out.printf("第[%d]个值是最大值:%d \n", (maxIndex + 1), max);
System.out.printf("第[%d]个值是最小值:%d \n", (minIndex + 1), min);

System.out.println("开始交换最大值");
int end = arrs[arrs.length - 1]; // 记录最后一个元素值
arrs[arrs.length - 1] = max; // 最后一个元素值 = max
arrs[maxIndex] = end; // 原最大值 = 最后一个值

int start = arrs[0]; // 记录第一个元素值
arrs[0] = min; // 第一个元素值 = min
arrs[minIndex] = start; // 原最小值 = 第一个值

System.out.println("最终结果:");
System.out.println(Arrays.toString(arrs));
}
}

亲,答题也需要时间和精力,如果回答满意,请及时采纳,你的合作是我回答的动力!! 谢谢!!

H爱不绝迹
2018-03-31 · TA获得超过7.6万个赞
知道大有可为答主
回答量:60
采纳率:85%
帮助的人:3.7万
展开全部

1、定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}。

2、将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组。

具体如下:
1、简介
编程是编写程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,是计算体系按照该计算方式运行,并最终得到相应结果的过程。
为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
2、汇编程序
汇编程序。使用汇编语言编写计算机程序,程序员仍然需要十分熟悉计算机系统的硬件结构,所以从程序设计本身上来看仍然是低效率的、繁琐的。但正是由于汇编语言与计算机硬件系统关系密切,在某些特定的场合,如对时空效率要求很高的系统核心程序以及实时控制程序等,迄今为止汇编语言仍然是十分有效的程序设计工具。
3、执行原理
计算机对除机器语言以外的源程序不能直接识别、理解和执行,都必须通过某种方式转换为计算机能够直接执行的。这种将高级编程硬件程序设计语言编写的源程序转换到机器目标程序的方式有两种:解释方式和编译方式。

根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。
具体步骤如下:/导致这种情况的原因主要是……

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-07-04
展开全部
/**
 * 需求:
 *  1、定义一个int类型的一维数组,内容为{6,2,9,15,1,5,20,7,18}。
 *  2、将数组最大元素与最后一位元素进行交换,最小元素与第一位元素进行交换,并打印数组。
 */
public class ExChange {

public static void main(String[] args) {
int[] arr = {6,2,9,15,1,5,20,7,18};
int max = arr[0];//假设第一位元素为最大值
int min = arr[0];//假设第一位元素为最小值
for(int i=0;i<arr.length;i++){
if(arr[i]>max){
max = arr[i];//找出最小值
}
if(arr[i]<min){
min = arr[i];//找出最小值
}
}
for(int i=0;i<arr.length;i++){
if(max==arr[i]){//找出最大值所在位置,然后与最后一位元素交换
int temp = arr[arr.length-1];
arr[arr.length-1] = arr[i];
arr[i] = temp;
}
if(min==arr[i]){//找出最小值所在位置,然后与第一位元素交换
int temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
}
}
for(int i=0;i<arr.length;i++){
System.out.print(arr[i]+" ");//打印结果
}
}

}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式