小白求助最大值最小值平均值问题
请用scanner制作,输入n个科目的数值后,可以取最大值,最小值,以及平均值的程序。如果用户输入负数直接退出程序例:n=3
输入 60,70,80
最高值:80
最小值:60
平均:70
求各位大大帮助。 是以逗号分隔吗? qiuyouzhi 发表于 2020-5-20 11:49
是以逗号分隔吗?
不用逗号分隔,大佬 import java.util.ArrayList;
import java.util.Scanner;
import static java.util.Collections.sort;
public class test {
public static void main(String[] args) {
System.out.println("输入科目个数:");
Scanner sr = new Scanner(System.in);
int n = sr.nextInt();
ArrayList<Integer> arr = new ArrayList<>();
int ave = 0;
for (int i = 0; i < n; i++) {
int score = sr.nextInt();
if(score < 0){
break;
}
arr.add(score);
}
if(arr.size() == n){
sort(arr);
System.out.println("最大值为:" + arr.get(n-1));
System.out.println("最小值为:" + arr.get(0));
for (Integer total : arr) {
ave += total;
}
System.out.println("均值为:" + (double)ave/n);
}
}
}
本帖最后由 sunrise085 于 2020-5-20 12:43 编辑
import java.util.Scanner;
class test
{
public static void main (String[] args) throws java.lang.Exception
{
int n,i;
float kemu,sum,ave,max,min;
Scanner sc = new Scanner(System.in);
while (true){
sum=0;
ave=0;
System.out.print("请输入科目数:");
n = sc.nextInt();
if (n==-1){
break;
}
System.out.print("请输入:");
sum=kemu= sc.nextFloat();
max=min=kemu;
for (i=1;i<n;i++){
kemu = sc.nextFloat();
if (max<kemu){
max=kemu;
}
if (min>kemu){
min=kemu;
}
sum+=kemu;
}
ave=sum/n;
System.out.println("最高值:"+max);
System.out.println("最小值:"+min);
System.out.println("平均值:"+ave);
}
}
} sunrise085 发表于 2020-5-20 12:38
感谢大佬的帮助! lei1996 发表于 2020-5-20 12:34
import java.util.ArrayList;
import java.util.Scanner;
简单易懂,谢谢大佬!
页:
[1]