需求
输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值;
计算并输出他们Java语言成绩的最大值和最小值。
思路
用Scanner 键盘输入
用for循环依次录入学生信息
用for循环输出学生信息
用for循环拿出学生成绩并求出成绩平均分
代码
补充知识:java 计算平均值,去除不合理的数据
我就废话不多说了,大家还是直接看代码吧~
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;
/**
* 计算平均值,去除不合理的数据
*
* @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数组转换为int数组
*/
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数组根据计算的基准值按块分离
*/
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;
}
/**
* 筛选留下数据最多的块
*/
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;
}
/**
* 将块计算平均值,如果数据大于两位,则个位四舍五入
*/
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集合存储学生信息并算出成绩平均值操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/a2500775628/article/details/103779723