• 数组的经典例子


    例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("序号		"+"金额(元)");
    11         for (int i = 0; i < scores.length; i++) {
    12             System.out.print((i+1)+"		");
    13         System.out.println(scores[i]);
    14         }
    15             System.out.println("总金额:		"+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]+"	");
    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("
    请输入歌曲名称:");
    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     }
  • 相关阅读:
    欧拉法求乘率
    利用连分数求乘率
    反乘率
    乘率
    别害怕暂时的迷茫
    别害怕心中的理想
    HDU6072 Logical Chain
    P3345 [ZJOI2015]幻想乡战略游戏
    P4449 于神之怒加强版
    [笔记] 拉格朗日插值法
  • 原文地址:https://www.cnblogs.com/weiguangyi/p/5185423.html
Copyright © 2020-2023  润新知