Java基础入门-数组练习

打印 上一主题 下一主题

主题 623|帖子 623|积分 1869

需求: 定义一个数组其中包含多个数字。用自己的方式最终实现,奇数放在数组的左边,偶数放在数组的右边。(可以创建其他数组,不必须在原数组中改变)

分析:       
1.初始化一个数组,里面既可以存储奇数也可以存储偶数(下面称这个个数组为原数组)。
2.再次定义两个数组,一个用来存放从原数组中挑出来的奇数int[] anotherOdds = new int[arr.length];,一个用来存放从原数组中挑出来的偶数int[] anotherEve = new int[arr.length];。数组长度均为原数组长度。
3.定义变量int j=0;,用来计数原数组中有多少个奇数,并且在遍历原数组的时候遇到奇数可以存放到奇数数组中,同时j++;。同理,定义变量int k=0;,用来计数原数组中有多少个偶数,并且在遍历原数组的时候遇到偶数可以存放到偶数数组中,同时k++;。
4.遍历偶数数组,把偶数数组中的数值拿出来放到奇数数组下标为j起始的位置,放入成功则执行j++;
下面为需求实现代码:

点击查看代码
  1. import java.util.Arrays;
  2. import java.util.Scanner;
  3. /*
  4.     定义一个数组其中包含多个数字。
  5.     用自己的方式最终实现,奇数放在数组的左边,
  6.     偶数放在数组的右边。
  7.     (可以创建其他数组,不必须在原数组中改变)
  8. */
  9. public class Demo19 {
  10.     public static void main(String[] args) {
  11.         //创建Scanner对象
  12.         Scanner scanner = new Scanner(System.in);
  13.         //输出提示信息
  14.         System.out.println("请输入数组的长度:");
  15.         //接受用户输入:
  16.         int getUserNum = scanner.nextInt();
  17.         //动态初始化一个数组
  18.         int[] arr = new int[getUserNum];
  19.         for (int i = 0; i < arr.length; i++) {
  20.             //输出提示信息
  21.             System.out.println("请往数组中输入数字:");
  22.             int getUserIn = scanner.nextInt();
  23.             arr[i] = getUserIn;
  24.         }
  25.         //输出提示信息
  26.         System.out.println("处理前的数组为:"+ Arrays.toString(arr));
  27.         //判断奇数还是偶数
  28.         //重新定义另一个数组用于接收奇数数据
  29.         int[] anotherOdds = new int[arr.length];
  30.         //再次定义一个数组接受偶数数据
  31.         int[] anotherEve = new int[arr.length];
  32.         //定义一个变量用于得到新数组的奇数索引
  33.         int j = 0,k=0;
  34.         for (int i = 0; i < arr.length; i++) {
  35.             if (arr[i]%2!=0){
  36.                 anotherOdds[j] = arr[i];
  37.                 j++;
  38.             }else {
  39.                 anotherEve[k] = arr[i];
  40.                 k++;
  41.             }
  42.         }
  43.         for (int i = 0; i < k; i++) {
  44.             anotherOdds[j] = anotherEve[i];
  45.             j++;
  46.         }
  47.         //输出一下新数组
  48.         System.out.println("处理后的数组为:"+Arrays.toString(anotherOdds));
  49. //        System.out.println(Arrays.toString(anotherEve));
  50. //        System.out.println(j);
  51.     }
  52. }
复制代码
执行效果如下



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表