蓝桥练习 之 数列特征
问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
1 3 -2 4 5
样例输出
5
-2
11
-2
11
数据规模与约定
1 <= n <= 10000。
该题是一个非常基础的题目,由于刚开始学习Java,我拿它用来练习一下Java。
C语言解答过程如下:
1 #include<iostream> 2 using namespace std; 3 int main() 4 { 5 int n=0; 6 cin>>n; 7 int a[10000],i=0,c=0,b=0,s=0; 8 for(int m=0;m<n;m++) 9 { 10 cin>>a[m]; 11 s=s+a[m]; 12 } 13 c=a[0];b=a[0]; 14 for(i=0;i<n;i++) 15 { 16 if(a[i]>c) 17 { 18 c=a[i]; 19 } 20 if(a[i]<b) 21 { 22 b=a[i]; 23 } 24 } 25 cout<<c<<endl; 26 cout<<b<<endl; 27 cout<<s; 28 return 0; 29 }
运行正确,蓝桥杯显示满分。
Java 语言解答代码:
1 import java.util.Scanner; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 Scanner sc = new Scanner(System.in); 7 int n =sc.nextInt(); 8 int i; 9 int[] Ashu = new int[n]; 10 for( i=0;i<n;i++) 11 { 12 int num = sc.nextInt(); 13 Ashu[i] = num; 14 } 15 16 int s = 0; 17 int min = Ashu[0]; 18 int max = Ashu[0]; 19 for(i=0;i<n;i++) 20 { 21 s = s + Ashu[i]; 22 if(Ashu[i] < min) 23 { 24 min = Ashu[i]; 25 } 26 if(Ashu[i] > max) 27 { 28 max = Ashu[i]; 29 } 30 } 31 System.out.println(max); 32 System.out.println(min); 33 System.out.println(s); 34 } 35 36 }
Java代码同样也是可以运行的。蓝桥杯测试100分。
小结:
这个运用Java语言写的时候,注意数组的输入,之前试了好多次,也百度了许多,最后发现这个是正确的,于是就将它记录下来。
int[] Ashu = new int[n];
for( i=0;i<n;i++)
{ int num = sc.nextInt(); Ashu[i] = num; }
这个是一个个输入的,接下来我会继续学习,探讨更好的方法。
每天都要进步一点,积少以成多。。。

浙公网安备 33010602011771号