需求
輸出每個學生的信息,計算并輸出這五個學生Java語言成績的平均值;
計算并輸出他們Java語言成績的最大值和最小值。
思路
用Scanner 鍵盤輸入
用for循環(huán)依次錄入學生信息
用for循環(huán)輸出學生信息
用for循環(huán)拿出學生成績并求出成績平均分
代碼
補充知識:java 計算平均值,去除不合理的數(shù)據(jù)
我就廢話不多說了,大家還是直接看代碼吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
package com.ine.tool; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** * 計算平均值,去除不合理的數(shù)據(jù) * * @author Ro * */ public class AverageTool { /** * 主方法 */ public static int getAverage(String str_int_arr) { int [] int_arr = stringToIntWhitSort(str_int_arr.split( "," )); if ( 1 < int_arr.length) { return getAverageByGoodList(getGoodListByBaseList(getBaseListByIntArray(int_arr))); } return Integer.parseInt(str_int_arr); } /** * 將String數(shù)組轉(zhuǎn)換為int數(shù)組 */ private static int [] stringToIntWhitSort(String[] arrs) { int [] ints = new int [arrs.length]; for ( int i = 0 ; i < arrs.length; i++) { ints[i] = Integer.parseInt(arrs[i]); } Arrays.sort(ints); System.out.println( "ints:" + Arrays.toString(ints)); return ints; } /** * 將int數(shù)組根據(jù)計算的基準值按塊分離 */ private static List<List<Integer>> getBaseListByIntArray( int [] int_arr) { List<List<Integer>> list = new ArrayList<List<Integer>>(); list.add( new ArrayList<Integer>()); int list_index = 0 ; int average_flag = 0 ; int sum_temp = 0 ; for ( int i : int_arr) { sum_temp += i; } average_flag = sum_temp / int_arr.length; System.out.println( "average_flag:" + average_flag); for ( int i = 0 ; i < int_arr.length - 1 ; i++) { if (average_flag >= Math.abs(int_arr[i] - int_arr[i + 1 ])) { list.get(list_index).add(int_arr[i]); } else { list.get(list_index++).add(int_arr[i]); list.add( new ArrayList<Integer>()); } if ((i + 2 ) == int_arr.length) { list.get(list_index).add(int_arr[i + 1 ]); } } System.out.println( "getBaseListByIntArray:" + list.toString()); return list; } /** * 篩選留下數(shù)據(jù)最多的塊 */ private static List<List<Integer>> getGoodListByBaseList( List<List<Integer>> list) { if ( 1 < list.size()) for ( int i = 1 ; i < list.size(); i++) { if (list.get( 0 ).size() != list.get(i).size()) { if (list.get( 0 ).size() < list.get(i).size()) { list.remove( 0 ); } else { list.remove(i); } i--; } } System.out.println( "getGoodListByBaseList:" + list.toString()); return list; } /** * 將塊計算平均值,如果數(shù)據(jù)大于兩位,則個位四舍五入 */ private static int getAverageByGoodList(List<List<Integer>> good_list) { int average = 0 ; int sum_temp = 0 ; int sum_index = 0 ; for (List<Integer> t_list : good_list) { for ( int i : t_list) { sum_temp += i; sum_index += 1 ; } } average = sum_temp / sum_index; if ( 10 < average) average = (average + 5 ) / 10 * 10 ; return average; } } |
以上這篇java用list集合存儲學生信息并算出成績平均值操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/a2500775628/article/details/103779723