蓝桥杯基础11:BASIC-4试题 数列特征

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s

问题描述

给出n个数,找出这n个数的最大值,最小值,和。

输入格式

第一行为整数n,表示数的个数。

第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。

输出格式

输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。

样例输入

5
1 3 -2 4 5

样例输出

5
-2
11

数据规模与约定

1 <= n <= 10000。

代码

考虑到每个数的绝对值小于10000,故输入的同时就可以求最大最小值

#include<stdio.h>
#include<math.h>
#define N 10001
#define m 10001
int num[N];
int main()
{
    int n,i,sum=0,max=-1*m,min=m;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&num[i]);
        sum=sum+num[i];
        if(num[i]>max)max=num[i];
        if(num[i]<min)min=num[i];
    }
    printf("%d\n%d\n%d\n",max,min,sum);
    return 0;
}

法二:仅80分

#include<stdio.h>
int main(){
	int n,i,max,min,sum=0;
	scanf("%d",&n);
	int a[10000];
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);
	max=a[0];
	min=a[0];
	if(n!=1){	
	for(i=0;i<n;i++)
	 if(max<a[i+1])
	 	max=a[i+1];
	for(i=0;i<n;i++)
	 if(min>a[i+1])
	 	min=a[i+1];
	}
	printf("%d\n",max); 
	printf("%d\n",min);
	for(i=0;i<n;i++)
	  sum=sum+a[i];
	printf("%d\n",sum);
	return 0;
} 

 法三:100分

#include<stdio.h>
int main(){
	int n,i,max=-10000,min=10000,sum=0;
	scanf("%d",&n);
	int a[10000];
	for(i=0;i<n;i++)
	scanf("%d",&a[i]);		
	for(i=0;i<n;i++)
	 if(max<a[i])
	 	max=a[i];
	printf("%d\n",max);
	for(i=0;i<n;i++)
	 if(min>a[i])
	 	min=a[i];	 
	printf("%d\n",min);
	for(i=0;i<n;i++)
	 sum=sum+a[i];
	printf("%d\n",sum);
	return 0;
} 

 法四:

#include <stdio.h>
int main()
{
    int i, n, a[10000];
    int sum, min, max;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
        scanf("%d", &a[i]);
    sum = min = max = a[0];
    for (i = 1; i < n; i++)
    {
        sum += a[i];
        if (min > a[i]) min = a[i];
        if (max < a[i]) max = a[i];
    }
    printf("%d\n%d\n%d", max, min, sum);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_60530224/article/details/128658597