• java经典例题30道——(26-30)


    26.将一个给定的整型数组转置输出

    例如:源数组,1 2 3 4 5 6 转置之后的数组,6 5 4 3 2 1 

    1. public static void main(String[] args) {
    2. int[] arr= {6, 5, 4, 3, 2, 1};
    3. for(int i=0; i<(arr.length)/2;i++) {
    4. int temp = arr[i];
    5. arr[i] = arr[arr.length-1-i];
    6. arr[arr.length-1-i] = temp;
    7. }
    8. System.out.println(Arrays.toString(arr));
    9. }

     27.要求该方法返回一个数组(如果key存在,数组中各元素的值分别为关键字key在原数组data中的各下标;如果key不存在,则返回一个长度为1的数组,数组元素为-1)。

    1. public class Test {
    2. public static void main(String[] args) {
    3. Scanner sc = new Scanner(System.in);
    4. System.out.println("程序将自动生成有233个元素的数组所有的元素的值都在0到99请输入一个数值,\n程序将查找这数值在不在这个随机生成的数组中,如果在则会把相应的下标打印出来,如果没有则会打印-1.");
    5. System.out.print("请输入一个0到99的整数:");
    6. int key = sc.nextInt();
    7. int[] arr=new int[233];
    8. for(int i=0;i
    9. arr[i]=(int)(Math.random()*100);
    10. }
    11. System.out.println(Arrays.toString(arr));
    12. int[] arr1 =ordinalSearch(arr,key);
    13. System.out.println(Arrays.toString(arr1));
    14. }
    15. public static int[] ordinalSearch(int[]arr2,int b) {
    16. int a=0;
    17. int[] arr;
    18. for(int i=0;i
    19. if(arr2[i]==b) {
    20. a++;
    21. }
    22. }if(a==0) {
    23. arr=new int[1];
    24. arr[0]=-1;
    25. }else {
    26. arr=new int[a];
    27. for(int i=0;i
    28. if(b == arr2[i]) {
    29. a=a-1;
    30. arr[a]=i;
    31. }
    32. }
    33. }
    34. return arr;
    35. }
    36. }

     28.将数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;中的零去掉;并返回一个新的数组。

    1. public class Test {
    2. public static void main(String[] args) {
    3. int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
    4. int newArr[] =deleteZero(oldArr);
    5. System.out.println(Arrays.toString(oldArr
    6. ));
    7. System.out.println(Arrays.toString(newArr));
    8. }
    9. public static int[] deleteZero(int[] arr) {
    10. int a=0;
    11. for(int i=0;i
    12. if(arr[i]!=0) {
    13. a++;
    14. }
    15. }
    16. int x=0;
    17. int[] arr1= new int[a];
    18. for(int i=0;i
    19. if(arr[i]!=0) {
    20. arr1[x]=arr[i];
    21. x++;
    22. }
    23. }
    24. return arr1;
    25. }
    26. }

     29.将两个一维数组合并,并安照升序排列。

    1. public class Test {
    2. public static void main(String[] args) {
    3. int[] arr= {1,7,9,11,13,15,17,19};
    4. int[] arr1= {2,4,6,8,10};
    5. int[] newArr=harmony(arr, arr1);
    6. System.out.println(Arrays.toString(newArr));
    7. }
    8. public static int[] harmony(int[] arr, int[] arr1) {
    9. int[] newArr= new int[arr.length+arr1.length];
    10. for(int i=0;i
    11. newArr[i]=arr[i];
    12. }
    13. for(int i=0;i
    14. newArr[i+arr.length]=arr1[i];
    15. }
    16. System.out.println(Arrays.toString(newArr));
    17. for(int i=0;i
    18. for(int a=i+1;a
    19. int temp=0;
    20. if(newArr[i]>newArr[a]) {
    21. temp=newArr[i];
    22. newArr[i]=newArr[a];
    23. newArr[a]=temp;
    24. }
    25. }
    26. }
    27. return newArr;
    28. }
    29. }

     30.定义一个数组来存储12个学生的成绩{72,89,65,58,87,91,53,82,71,93,76,68},统计各成绩等级(90分以上为‘A’,8089分为‘B’,7079分为‘C’,60~69分为‘D’,60分以下为E)学生人数,并将其放入到数组count中,其中:count[0]存E级的人数,count[1]存D级的人数,……,count[4]存A级的人数。

    1. public class Exercises04 {
    2. public static void main(String[] args) {
    3. int[] score= {72,89,65,58,87,91,53,82,71,93,76,68};
    4. classification(score);
    5. }
    6. public static int[][] classification(int[] arr){
    7. int[][] count=new int[5][];
    8. int a=0,b=0,c=0,d=0,e=0;
    9. for(int i=0;i
    10. if(arr[i]>=90) {
    11. a++;
    12. }
    13. if(arr[i]>=80 && arr[i]<=89) {
    14. b++;
    15. }
    16. if(arr[i]>=70 && arr[i]<=79) {
    17. c++;
    18. }
    19. if(arr[i]>=60 && arr[i]<=69) {
    20. d++;
    21. }
    22. if(arr[i]<60) {
    23. e++;
    24. }
    25. }
    26. count[0] =new int[e];
    27. count[1] =new int[d];
    28. count[2] =new int[c];
    29. count[3] =new int[b];
    30. count[4] =new int[a];
    31. for(int i=0;i
    32. if(arr[i]>=90) {
    33. a=a-1;
    34. count[4][a]=arr[i];
    35. }
    36. if(arr[i]>=80 && arr[i]<=89) {
    37. b=b-1;
    38. count[3][b]=arr[i];
    39. }
    40. if(arr[i]>=70 && arr[i]<=79) {
    41. c=c-1;
    42. count[2][c]=arr[i];
    43. }
    44. if(arr[i]>=60 && arr[i]<=69) {
    45. d=d-1;
    46. count[1][d]=arr[i];
    47. }
    48. if(arr[i]<60) {
    49. e=e-1;
    50. count[0][e]=arr[i];
    51. }
    52. }
    53. for(int i=0;i
    54. System.out.print(Arrays.toString(count[i]));
    55. }
    56. return count;
    57. }
    58. }


     

  • 相关阅读:
    ray tracing of Embree
    技术分享 | MySQL Shell 运行 SQL 的两种内置方法概述
    About Stacked Generalization
    WebStorm stylelint 自动修复
    OSG第三方库编译之三十四:Expat编译(Windows、Linux、Macos环境下编译)
    uniapp 高度铺满全屏
    libevent源码跨平台编译(windows/macos/linux)
    PDF 转Word 开源库
    Linux内存管理(二十七):shrink_list 详解(2)
    零基础学Java第六节(面向对象二)
  • 原文地址:https://blog.csdn.net/qq_48516121/article/details/127463076