4月16日上机练习
1.有10个评委打分,(去掉一个最高一个最低)求平均分。
package text1; public class zhangjun { public static void main(String[] args) { avg10(); } public static void avg10() { int[] array = {89, 89, 92, 94, 78, 91, 88, 92, 90, 90}; int index = 0, sum = 0, temp = 0, avg = 0 ; //找到最低分 冒泡排除,从小到大排列 for (int i = 0; i < array.length - 1; i++) { for (int j = i + 1; j < array.length; j++) { if (array[j] < array[i]) { //如果是大于号, 将是从大到小 temp = array[i]; array[i] = array[j]; array[j] = temp; } } } //求和 while (array.length != index) { sum += array[index]; index++; } do { sum = sum - array[0] - array[array.length-1]; //去掉最高分和最低分, } while (false); avg = sum / 8; System.out.println(avg); } }
2.自学一下Java随机数,生成一个长度为10的随机数组(每个数的范围是0~99),排序后输出。
package text1; import java.util.Random; public class zhangjun { public static void main(String[] args) { Random r = new Random(); int [] [] num = new int [4] [4]; for(int n=0;n<4;n++){ for(int m=0;m<4;m++){ num[n][m]=r.nextInt(9); } } printN(num); //检验数组第一个数的大小 //第一轮把最大的数排在最下 //第二轮把第二大的排在第三 //第三轮把第三大的排在第二并且把最小的放在前面 for(int n=0;n<3;n++){ for(int m=0;m<3;m++){ if(num[m][0]>num[m+1][0]){ int [] temp= new int [4]; for(int a=0;a<4;a++){ temp[a]=num[m+1][a]; } for(int a=0;a<4;a++){ num[m+1][a]=num[m][a]; } for(int a=0;a<4;a++){ num[m][a]=temp[a]; } } } System.out.print("\nround"+(n+1)+"\n"); printN(num); } System.out.print("\nfinal result:\n"); printN(num); } //数组打印方法 public static void printN(int [] [] a){ for(int n=0;n<4;n++){ for(int m=0;m<4;m++){ System.out.print(a[n][m]+" "); } System.out.println(); } } }
3.制作彩票35选7程序。 (就是1~35随机生成7个不重复的数)
package text1; import java.io.IOException; import java.util.*; public class zhangjun { public static void main(String[] args) throws IOException{ Scanner scanner = new Scanner(System.in); //随机生成7个不重复的数 int[] r = new int[7]; boolean[] b = new boolean[31]; //记录该数是否已经生成 for(int i = 0;i < 7; i ++){ int tem = (int)(Math.random() * 30) + 1; while(b[tem] == true) tem = (int)(Math.random() * 30) + 1; r[i] = tem; b[tem] = true; } //输入7个数 int[] in = new int[7]; for(int i = 0;i < 7;i ++){ in[i] = scanner.nextInt(); } //打印生成的7个随机数 System.out.println("Random numbers:"); for(int i = 0;i < 7; i ++){ System.out.print(r[i] + " "); } System.out.println(); //打印你输入的7个数 System.out.println("Your numbers:"); for(int i = 0;i < 7;i ++){ System.out.print(in[i] + " "); } System.out.println(); //打印相同的数 System.out.println("The same numbers:"); for(int i = 0;i < 7;i ++) for(int j = 0;j < 7;j ++){ if(in[i] == r[j]){ System.out.print(in[i] + " "); } } System.out.println(); } }
4.定义一个长度为10的int数组,统计数组中的最大值、最小值、以及奇数和偶数的个数
package text1; public class zhangjun { public static void main(String[] args) { // TODO Auto-generated method stub int max = 0; int min = 99; int m = 0;//记录偶数出现的次数 int n = 0;//记录奇数出现的次数 int array[] = { 12, 66, 3, 9, 21, 25, 99, 37, 11, 2 }; for (int i = 0; i < array.length; i++) { if (array[i] > max) { max = array[i]; } if (array[i] <min) { min = array[i]; } } for(int i = 0; i < array.length; i++){ if(array[i]%2==0){ m++; }else{ n++; } } System.out.println("偶数出现的次数:"+m); System.out.println("奇数出现的次数:"+n); System.out.println("最大值:"+max); System.out.println("最大值:"+min); } }