A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BlackHorse001 中级黑马   /  2015-9-1 08:22  /  245 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

1 个回复

正序浏览
  1. public static void main(String[] args) {
  2.                 int i, min, max, n, temp1, temp2;
  3.                 int a[];
  4.                 System.out.println("输入数组的长度:");
  5.                 Scanner keyboard = new Scanner(System.in);
  6.                 n = keyboard.nextInt();
  7.                 a = new int[n];
  8.                 for (i = 0; i < n; i++) {
  9.                 System.out.print("输入第" + (i + 1) + "个数据");
  10.                 a[i] = keyboard.nextInt();
  11.                 }
  12.                 //以上是输入整个数组
  13.                 max = 0;
  14.                 min = 0;
  15.                 //设置两个标志,开始都指向第一个数
  16.                 for (i = 1; i < n; i++) {
  17.                 if (a[i] > a[max])
  18.                 max = i; //遍历数组,如果大于a[max],就把他的数组下标赋给max
  19.                 if (a[i] < a[min])
  20.                 min = i; //同上,如果小于a[min],就把他的数组下标赋给min
  21.                 }
  22.                 //以上for循环找到最大值和最小值,max是最大值的下标,min是最小值的下标
  23.                 temp1 = a[0];
  24.                 temp2 = a[min]; //这两个temp只是为了在交换时使用

  25.                 a[0] = a[max];
  26.                 a[max] = temp1; //首先交换a[0]和最大值a[max]

  27.                 if (min != 0) { //如果最小值不是a[0],执行下面
  28.                 a[min] = a[n - 1];
  29.                 a[n - 1] = temp2; //交换a[min]和a[n-1]
  30.                 } else {       //如果最小值是a[0],执行下面
  31.                 a[max] = a[n - 1];
  32.                 a[n - 1] = temp1;
  33.                 }

  34.                 for (i = 0; i < n; i++) { //输出数组
  35.                 System.out.print(a[i] + " ");
  36.                 }

  37.                 }
复制代码


如果您觉得我的回答还满意的话,请回复一下我
我的QQ:2355928351
如果您还有其他的入学前问题可以加我的QQ
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马