问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5样例输出
5
-2
11数据规模与约定
1 <= n <= 10000。
解题思路:
1.本题有两种解法,分别用到了Arrays.sout(x)和temp
Arrays.sout(x)
import java.util.Arrays;//导入Arrays包
import java.util.Scanner;//导入scanner包
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);//通过 Scanner 类来获取用户的输入
int n = sc.nextInt();//获取用户输入的整数n
int [] m = new int[n];//定义一个数组m,长度为n
int sum=0;//定义一个变量sum(即数据之和)
for (int i=0;i<n;i++){
m[i]=sc.nextInt();//输入m里的各个数据(共n个)
sum +=m[i];//求m里数据之和
}
Arrays.sort(m);//把数组m里的数进行排序
System.out.println(m[n-1]);//输出最大值
System.out.println(m[0]);//输出最小值
System.out.println(sum);//输出这些数的和
}
}
temp
import java.util.Scanner;//导入scanner包
public class Main {
public static void main(String[] args) {
int max = 0, min = 0, sum = 0;//定义最大值,最小值,和
Scanner sc = new Scanner(System.in);//通过 Scanner 类来获取用户的输入
int n = sc.nextInt();//获取用户输入的整数n
int temp;//定义一个临时变量
for(int i = 1; i <= n ; i++){
temp = sc.nextInt();//获取用户输入的数据(共n个)
if(i == 1){//如果n为1
max = min = temp;//最大值=最小值=临时变量
}
if(temp > max){//如果临时数据>最大值
max = temp;//最大值=临时数据
}
if(temp < min){//如果临时数据<最小值
min = temp;//最小值=临时数据
}
sum += temp;//求所有临时数据之和
}
System.out.println(max);//输出最大值
System.out.println(min);//输出最小值
System.out.println(sum);//输出数据之和
}
}
知识点总结:
Arrays.sout(x):对x数组进行从小到大排序
temp:为了方便计算而临时定义的一个变量