蓝桥:数列特征
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。
锦囊1
使用循环语句和标志变量。
锦囊2
将所有数读入到一个数组中,然后使用循环语句依次枚举数组中的每个元素,使用三个变量分别表示当前找到的最大值、最小值及前一部分数的和。最后输出。
————————————————
原文链接:https://blog.csdn.net/zhangyaowxd/article/details/89838485
问题分析
我先开始想到的是先输入嘛,之后再进行比大小
后来我发现可以用array.sort()函数直接进行从小到大的排序,之后就可以直接找出最小值和最大值
这个函数的用法可以看之前的文章
知识点
- hasNext()与Next()的不同
hasNext()和Next()效果其实是一样的,系统都会等待输入下一个字符,只是返回值不同,hasNext()会返回true,next()返回输入的字符。
代码分析
import java.util.Arrays;
import java.util.Scanner;
public class 数列特征 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//输入有几个数字
int sum=0;
int arr[]=new int[n];//定义数组
if(n>=1&&n<=10000){//显示的范围
for(int i=0;i<n;i++){//从0到n-1
arr[i]=(int)sc.nextInt();//把输入的值存放在数组当中
sum+=arr[i];
}
}
//下面就要进行数组的排序
Arrays.sort(arr);//从小到大排列数组
System.out.println(arr[n-1]);
System.out.println(arr[0]);
System.out.println(sum);
}
}