问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n
<= 10000。
下面是几种解决方法
方法1java:
package 数列特征;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
if(n>=1 && n<=10000)
for(int i=0;i<n;i++) {
arr[i] = in.nextInt();
}
in.close();
Arrays.sort(arr);
int sum =0;
int max=0;
int min =0;
for(int i=0;i<n;i++) {
// sum = arr[i];
min=arr[0];
max = arr[n-1];
sum += arr[i];
//System.out.println(arr[i]);
}
System.out.println(max);
System.out.println(min);
System.out.println(sum);
}
}
方法2java:
package 数列特征方法2;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[] arr = new int[n];
if(n>=1 && n<=10000) {
for(int i =0;i<n;i++) {
arr[i] = in.nextInt();
}
}
in.close();
// int max =0;
// int min =0;
int sum =0;
int max=arr[0];
int min=arr[n-1];
for(int i =0;i<n;i++) {
if(max < arr[i]) {
max =arr[i];
}
if(min > arr[i]) {
min =arr[i];
}
sum +=arr[i];
}
System.out.println(max);
System.out.println(min);
System.out.println(sum);
}
}
用c实现的
#include <stdio.h>
#include <stdlib.h>
int main()
{
void max(int a[],int n);
void min(int a[],int n);
void sum(int a[],int n);
int n,i=0;
int a[10000];
scanf("%d",&n);
for(i;i<n;i++)
{
scanf("%d",&a[i]);
}
max(a,n);
min(a,n);
sum(a,n);
return 0;
}
void max(int a[],int n)
{
int z=a[0];
int i;
for(i=0;i<n;i++)
{
if(a[i]>z)
z=a[i];
}
printf("%d\n",z);
}
void min(int a[],int n)
{
int i;
int m=a[0];
for(i=0;i<n;i++)
{
if(a[i]<m)
m=a[i];
}
printf("%d\n",m);
}
void sum(int a[],int n)
{
int s=0;
int i;
for(i=0;i<n;i++)
{
s=s+a[i];
}
printf("%d\n",s);
}