Java创建int数组,将最大值与最小值位置交换输出,代码以及截图如下:
成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都做网站、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的三都网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
import java.util.Arrays;
public class Demo {
public static void main(String[] args) {
int[] num = new int[] { 2, 1, 3, 4, 5 };
int[] temp = new int[num.length];//临时数组 创建是为了重新排序比较大小时不影响原数组顺序
for (int i = 0; i num.length; i++) {
temp[i] = num[i];
}
Arrays.sort(temp);//升序排序
int min = temp[0];//最小值
int max = temp[temp.length - 1];//最大值
for (int i : num) {
//逻辑判断,如果是最小值,输出最大值,否则,相反。
if (i == min) {
System.out.println(max);
} else if (i == max) {
System.out.println(min);
} else {
System.out.println(i);
}
}
}
}
运行示例:
BufferedReader[] buf = new BufferedReader[10]; //申请缓冲数组
int n;
int array[] = new int[10];
for (int i = 0; i 10; i++) { //赋值
buf[i] = new BufferedReader(new InputStreamReader(System.in)); //给每个缓冲区定义
do { //判断是否是空串,如是则重新输入
n = 1;
System.out.print("请输入第" + (i + 1) + "个整数:");
try { //建立一个异常捕获
array[i] = Integer.parseInt(buf[i].readLine()); //执行串变整数
} catch (NumberFormatException e) { //捕获异常
System.out.println("数据输入错误请重新输入");
n = 0;
} catch (IOException e) {
e.printStackTrace();
}
} while (n == 0);
}
return array;
}
public static void print() {
int[] ary = write();
int s;
System.out.println("\n你输入的数组是:");
for (int i = 0; i 10; i++) { //输出原数组
System.out.print(ary[i] + " ");
}
for (int i = 0; i 5; i++) { //对换
s = ary[i];
ary[i] = ary[9 - i];
ary[9 - i] = s;
}
System.out.println("\n对换后的数组是:");
for (int i = 0; i 10; i++) { //输出对换后数组
System.out.print(ary[i] + " ");
}
System.out.println();
}
}12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
int[] nums = {1, 2, 3, 4, 5, 6};
for(int i = 0; i nums.length / 2; i++) {
int temp = nums[i];
nums[i] = nums[nums.length - i - 1];
nums[nums.length - i - 1] = temp;
}
for(int num : nums) {
System.out.println(num);
}
另外一种就倒叙吧。。哈哈。。
题目很简单,关键是思路
先找出最大值、最小值,并记住其位置
再做交换
具体参考下列代码
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));
}
}
亲,答题也需要时间和精力,如果回答满意,请及时采纳,你的合作是我回答的动力!! 谢谢!!