数组小练习:
- 创建一个数组用来存储1-100之间的奇数;
- 给定两个数组a{1,2,3,4} b{5,6,7,8} 将两个数组内的元素对应位置互换;
- 给定一个数组a{1,2,3,4,5,6,7} 将这个数组中的元素头尾对应互换位置;
- 给定一个数组a{1,2,3,4,5,6} 计算数组所有元素的平均值;
- 给定一个数组a{1,3,5,7,9,0,2,4,6,8} 找寻数组中的最大值和最小值(极值问题);
- 给定两个数组a{1,2,3} b{4,5} 合并两个数组 (创建一个新的数组5长度);
- 给定一个数组a{1,2,3,9,4,5} 按照数组中的最大值位置 将数组拆分成两个{1,2,3} {4,5};
- 给定一个数组a{1,2,3,0,0,4,5,0,6,0,7} 去掉数组中的0元素 (创建一个新数组 短的 非零元素挑出来);
- 创建一个数组 存储2-100之间的素数(质数);
- 数组元素的排序(冒泡 快速 选择 希尔.....);
- 用户的登录认证(用数组当作小数据库 存值 用户验证);
1.创建一个数组来存储1--100间的奇数
public class Array { public static void main(String[] args){ int number = 0; for(int sum = 1; sum <=100; sum++){ if(sum % 2 != 0) number++; } int [] array = new int[number]; int index = 0; for(int sum = 1; sum <=100; sum++){ if(sum % 2 != 0) { array[index++] = sum; } } for(int var : array){ System.out.println(var); } } }
2.给定两个数组a{1,2,3,4} b{5,6,7,8} 将两个数组内的元素对应位置互换
@SuppressWarnings("all") public class ArraySwop { //给定两个数组,使其元素互换 public void Swop(int[] arrayA,int[] arrayB){ //有两种方法: // 一种是引用地址交换(不受数组长度限制) // 一种是元素值互换(受两数组长度限制) //方法一:交换两数组地址 System.out.println("交换前数组A为:"); for(int result : arrayA) { System.out.print(result + " "); } System.out.println(); System.out.println("交换前数组B为:"); for(int result : arrayB){ System.out.print(result+" "); } System.out.println(); int temp[]; temp = arrayA; arrayA = arrayB; arrayB = temp; System.out.println("----------------"); System.out.println("交换后数组A为:"); for(int result : arrayA){ System.out.print(result+" "); } System.out.println(); System.out.println("交换后数组B为:"); for(int result : arrayB){ System.out.print(result+" "); } /* for(int i = 0; i < arrayA.length; i++){ int temp = 0; temp = arrayA[i]; arrayA[i] = arrayB[i]; arrayB[i] = temp; } System.out.println("交换后数组A存储的值为:"); for(int var : arrayA){ System.out.print(var+" "); } System.out.println(); System.out.println("交换后数组B存储的值为:"); for(int var : arrayB){ System.out.print(var+" "); } */ } }
思路图解:
3.给定一个数组a{1,2,3,4,5,6,7} 将这个数组中的元素头尾对应互换位置.
public class Array { public static void main(String[] args){ int [] array = new int[]{1, 2, 3, 4, 5, 6, 7}; for(int i = 0; i < array.length / 2; i++){ int temp = array[i]; array[i] = array[array.length-i-1]; array[array.length-i-1] = temp; } for(int var : array){ System.out.println(var); } } }
4.给定一个数组a{1,2,3,4,5,6} 计算数组所有元素的平均值;
public class Array { public static void main(String[] args){ int [] array = new int[]{1, 2, 3, 4, 5, 6}; int sum = 0; float aver = 0.0F; for(int i = 0; i < array.length; i++){ sum = sum + array[i]; } aver = (float)sum / (float)array.length; System.out.println("和为:"+ sum); System.out.println("平均数为:"+ aver); } }
5.给定一个数组a{1,3,5,7,9,0,2,4,6,8} 找寻数组中的最大值和最小值(极值问题);
public class ArrayExtremum { //输出极值,true为最大值,false为最小值 public void Extremum(int[] arrayA,boolean flag){ int temp = arrayA[0]; if (flag){ for (int i=1;i<arrayA.length;i++){ if(temp<arrayA[i]) temp = arrayA[i]; } System.out.println("该数组最大值为:"+temp); }else { for (int i=1;i<arrayA.length;i++){ if(temp>arrayA[i]) temp = arrayA[i]; } System.out.println("该数组最小值为:"+temp); } } }