你的位置:首页 > Java教程

[Java教程]数组的经典例子


例1:求学生的平均分

 1 public static void main(String[] args) {     2 Scanner input=new Scanner(System.in); 4     int scores []=new int[5]; 5     int sum=0; 6     7     System.out.println("请输入五位同学的成绩:"); 8     for (int i = 0; i < scores.length; i++) {//遍历数组 9       scores[i]=input.nextInt();10       sum+=scores[i];//成绩累加    11     }12     System.out.print("平均分:"+sum/scores.length);

例2:输出5笔购物金额及总金额

 1 public static void main(String[] args) {         2     Scanner input=new Scanner(System.in); 3     double sum=0; 4     double scores[]=new double[5]; 5     for (int i = 0; i < scores.length; i++) { 6       System.out.print("请输入第"+(i+1)+"笔金额的记录:"); 7       scores[i]=input.nextDouble(); 8       sum+=scores[i]; 9     }10     System.out.println("序号\t\t"+"金额(元)");11     for (int i = 0; i < scores.length; i++) {12       System.out.print((i+1)+"\t\t");13     System.out.println(scores[i]);14     }15       System.out.println("总金额:\t\t"+sum);

例3:循环录入5位学员成绩,进行升序排列后输出结果

 1 public static void main(String[] args) {     2   Scanner input=new Scanner(System.in); 3   int scores []=new int[5]; 4   System.out.println("请输入5位同学的成绩:"); 5   //录入成绩 6   for (int i = 0; i < scores.length; i++) { 7     scores[i]=input.nextInt(); 8   } 9   Arrays.sort(scores);//排序10   System.out.println("学员成绩按升序排序:");11   for (int i = 0; i < scores.length; i++) {12     System.out.println(scores [i]+" ");13   }

例4:从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分

 1 public static void main(String[] args) {     2   Scanner input=new Scanner(System.in); 3   int scores []=new int[5]; 4   int max=0; 5   System.out.println("请输入5位同学的成绩:"); 6   //录入成绩 7   for (int i = 0; i < scores.length; i++) { 8     scores[i]=input.nextInt(); 9   }10   11   for (int i = 0; i < scores.length; i++) {12     if (scores[i]>max) {13       max=scores[i];14     }15   }16     System.out.println("最高分:"+max);17   }

例5:有一组学员的成绩{99,85,82,63, 60},将它们按升序排列。要增加一个学员的成绩,将它插入成绩序列,并保持升序。

 1 public static void main(String[] args) {     2   Scanner input=new Scanner(System.in); 3      int [] list=new int [6]; 4      list[0]=99; 5      list[1]=95; 6      list[2]=92; 7      list[3]=89; 8      list[4]=69; 9      list[5]=49;10      int index=list.length;//保存新增成绩的位置11      System.out.println("请输入新增成绩:");12      int num=input.nextInt();//输入要插入的数据13      //找到新元素插入的位置14      for (int i = 0; i < list.length; i++) {15       16        if (num>list[i]) {17         index=i;18         break;19       }20     }21      //元素后移22      for (int i =list.length-1 ; i >index ; i--) {23     list[i]=list[i-1];//index下标开始的元素后移一个位置24     }25      list[index]=num;26   System.out.println("插入成绩的下标:"+index);27   28   System.out.println("插入后成绩信息是:");29   for (int i = 0; i < list.length; i++) {30     System.out.println(list[i]+"\t");31   }32   }

例6:将 一组乱序的字符进行排序 进行升序和逆序输出

 1 public static void main(String[] args) {     2   Scanner input=new Scanner(System.in); 3   String[]num=new String[]{"a","c","u","b","e","p","f","z"}; 4   System.out.print("原字符序列:"); 5   for (int i = 0; i < num.length; i++) { 6     System.out.print(num[i]+" "); 7   } 8   Arrays.sort(num); 9   System.out.println();//换行10   System.out.print("升序排序后:");11   for (int i = 0; i < num.length; i++) {12     System.out.print(num[i]+" ");13   }14   System.out.println();//换行15   System.out.print("逆序输出为:");16   //逆序,则从最后的哪一个元素排在第一位17   for (int i = num.length-1; i >=0 ; i--) {18     System.out.print(num[i]+" ");19   }

例7:求出4家店的最低手机价格及原始位置(下标)

 1 Scanner input=new Scanner(System.in); 2   System.out.println("请输入4家店的价格"); 3    int[]num=new int[4]; 4    for (int i = 0; i < num.length; i++) { 5        System.out.print("第"+(i+1)+"店的价格:"); 6        num[i]=input.nextInt();      7       } 8    int min=num[0]; 9     int index=0;10      for (int j = 0; j < num.length; j++) {11       if (num[j]<min) {12         min=num[j];13         index=j;14       }15       16       }17      System.out.print("最低价格:"+min);18      System.out.println("且它在数组中的原始位置(下标)是:" + index);19     }20   }

例8:从键盘上输出10个整数,合法值为1,2或3,其余为不合法,并且统计合法及不合法的个数

 1 Scanner input=new Scanner(System.in); 2     int nums[] = new int[10]; 3     int a = 0; 4     int b = 0; 5     int c = 0; 6     int d = 0; 7     System.out.println("请输入10个数:"); 8     for (int i = 0; i < nums.length; i++) { 9       nums[i] = input.nextInt();10     11       switch (nums[i]) {12       case 1:13         a++;14         break;15       case 2:16         b++;17         break;18       case 3:19         c++;20         break;21       default:22         d++;23         break;24       }25       26     }27     System.out.println("数字1的个数:"+a);28     System.out.println("数字2的个数:"+b);29     System.out.println("数字3的个数:"+c);30     System.out.println("非法数字的个数:"+d);

例9:假设有一个数组,长度为5,int [] aray=new int[]{1,3,-1,5,-2},先创建一个新数组,要求新数组的存放顺序与原数组的元素逆序,并且如果原数组中的元素值小于0,在新数组中安0存储,

 1 Scanner input=new Scanner(System.in); 2       3   int []array=new int[]{1,3,-1,5,-2}; 4   System.out.println("原数组的为:"); 5   for (int i = 0; i < array.length; i++) { 6     System.out.print(array[i]+ " "); 7   } 8   System.out.println(); 9    int newarray[]=new int[5];10    for (int i = array.length - 1; i >= 0; i--) {11       if (array[i] < 0) {12         continue;13       }14       if (array[i] > 0) {15         newarray[array.length - i - 1] = array[i];16       }17     }18     System.out.println("");19     System.out.println("逆序并处理后的数组为:");20     for (int i = 0; i < newarray.length; i++) {21       System.out.print(newarray[i]+" ");22     }23     }

例10:

 1 public static void main(String[] args) {     2     Scanner input=new Scanner(System.in);   3     String[] musics = new String[]{"Island","Ocean","Pretty","Sun"}; 4     int index = musics.length; //保存新歌插入位置 5     //输出插入前的结果 6     System.out.print("插入前的数组为:"); 7     for(int i = 0; i < musics.length ; i++){ 8     System.out.print(musics[i]+" "); 9     }10     //新数组11     String[] newMusics = new String[musics.length+1];//新歌曲数组12     String music = ""; //保存用户输入的歌曲名称13      //将数组musics中的元素复制到新歌曲数组newMusics中14     for(int i = 0; i < musics.length; i++){15     newMusics[i] = musics[i];16     }17     //输入歌曲名称18    System.out.print("\n请输入歌曲名称:");19     music = input.nextLine();20     //找到新元素的插入位置21     for(int i = 0; i < musics.length; i++){22     if(musics[i].compareToIgnoreCase(music) > 0){ 23       index = i;24     break;25     }26     }27     //元素后移28     for(int i = newMusics.length-1; i > index; i--){29     newMusics[i] = newMusics[i-1]; //index下标开始的元素后移一个位置30     }31     newMusics[index] = music; //新元素放在index的位置 地址32     System.out.print("逆序处理后的数组为:");33     for (int i = 0; i < newMusics.length; i++) {34       System.out.print(newMusics[index]+" " );35     }36     37     }38   39   }