ArrayWorker.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.sf.javase.day03;
  2. import org.junit.jupiter.api.Test;
  3. import java.util.Arrays;
  4. /**
  5. * 数组练习题
  6. */
  7. public class ArrayWorker {
  8. /**
  9. * 数组统计:求总和、均值
  10. * 求数组元素的总乘积
  11. */
  12. @Test
  13. public void t1(){
  14. int[] arr = {4,5,6,1,9};
  15. int sum = 0;
  16. int result = 1;
  17. double avg = 0.0;
  18. //sum avg
  19. for (int i = 0;i<arr.length;i++){
  20. sum += arr[i];
  21. result *= arr[i];
  22. }
  23. System.out.println(sum);
  24. avg =sum/arr.length;
  25. System.out.println(avg);
  26. System.out.println(result);
  27. }
  28. /**
  29. * 求数组元素的最大值
  30. */
  31. @Test
  32. public void t2(){
  33. int[] arr = {4,5,6,1,9};
  34. int max = arr[0];
  35. for (int i = 0;i<arr.length;i++){
  36. if(arr[i]>max){
  37. max = arr[i];
  38. }
  39. }
  40. System.out.println(max);
  41. }
  42. /**
  43. * 找最值大及其所有最大值的下标
  44. */
  45. @Test
  46. public void t3(){
  47. int[] arr = {4,5,9,1,9,9,3};
  48. int max = arr[0];
  49. int count = 0;
  50. int pre = 0;
  51. int[] arr1 = new int[arr.length]; //null 0
  52. String index = "0";
  53. for (int i = 0; i < arr.length; i++) {
  54. if(arr[i] > max){
  55. max = arr[i];
  56. pre = max;
  57. arr1[count] = i;
  58. }else if (arr[i] == max){
  59. if(pre != max){
  60. count--;
  61. }
  62. arr1[++count] = i;
  63. }
  64. }
  65. System.out.println(max);
  66. System.out.println(index);
  67. System.out.println(Arrays.toString(arr1));
  68. }
  69. @Test
  70. public void t4(){
  71. int[] scores = {5,4,6,8,9,0,1,2,7,3};
  72. int max = scores[0];
  73. int min = scores[0];
  74. int sum = 0;
  75. for (int i = 0; i < scores.length; i++) {
  76. if (scores[i] > max) {
  77. max = scores[i];
  78. }
  79. if (scores[i] < min) {
  80. min = scores[i];
  81. }
  82. sum += scores[i];
  83. }
  84. double avg = (sum - max -min)*1.0/(scores.length-2);
  85. System.out.println("总分"+sum);
  86. System.out.println("最高分"+max);
  87. System.out.println("最低分"+min);
  88. System.out.println("平均分"+avg);
  89. }
  90. }