蓝桥杯练习系统:基础练习NO.4《数列特征》c/c++版

问题描述
给出n个数,找出这n个数的最大值,最小值,和。
输入格式
第一行为整数n,表示数的个数。
第二行有n个数,为给定的n个数,每个数的绝对值都小于10000。
输出格式
输出三行,每行一个整数。第一行表示这些数中的最大值,第二行表示这些数中的最小值,第三行表示这些数的和。
样例输入
5
1 3 -2 4 5
样例输出
5
-2
11
数据规模与约定
1 <= n <= 10000。

个人理解:
题中说给出n个数,最后呢又给出数据规模与约定,好啦,我已经明白了,我肯定得用一维数组来存这些数啦,至于原因呢,上次已经提到过,因为在定义数组时[ ]中必须得有确定的数字,要定义数组,必须提前给它一个储存空间嘛,所以最后为啥要给出数据规模与约定就有这么个原因,那我用数组存入这n个数后,我还要求最大值,最小值还有和,那很明显就想到,我把数组中的每一个数字按从大到小的顺序排列,这时候是不是最后一个数字就是最小值,第一个数字就是最大值,至于说和怎么办呢,那我就又想到啦,我用一个循环把数组中每一个数字加起来不就完事了么,真爽,又一个题的思路突破了,赶快去敲代码喽,铺垫这么多,肯定是有重要的事要说,不知道大家和我是否一样,在定义时肯定是这样:int a[10001],sum=0;数组里面放的是整数定义成int型,那求和嘛,所有的整数加起来还是整数嘛,说到这句话,求求你停下来品品,数据规模是多大,麻烦你睁大你的双眼,1-10000,就算数组中的每一个数都是1(这时候有人就说那我每一个数都是0呗,小哥哥小姐姐咱别捣乱嘛),最后的和最大是10000,那要是每一个数再大点,那求出来的和可就是非常非常大啦,那还把sum定义成int型的话就会出现数据溢出,这里普及一下:
int -2147483648~2147483647
long -2147483648~2147483647
long long的最大值:9223372036854775807
long long的最小值:-9223372036854775808
所以sum肯定是定义成long long呗,好啦,这时候就可以冲冲冲啦,动起自己的小手敲代码去喽!
运行结果显示:
在这里插入图片描述
代码如下:

#include <stdio.h>
int main()
{
    int n,i,a[10001],count=0,t;
    long long sum=0;//切记定义时用long long
    scanf("%d",&n);
    for(i=0;i<n;i++)//将数组中n个数一一赋值
        scanf("%d",&a[i]);
    while (count<n) {
        for(i=count;i<n;i++)//用两层循环进行排序
        {
            if(a[count]<a[i])
            {
                t=a[count];
                a[count]=a[i];
                a[i]=t;
            }
        }
        count++;
    }
    printf("%d\n",a[0]);
     printf("%d\n",a[n-1]);
    for(i=0;i<n;i++)//求和
        sum=sum+a[i];
    printf("%lld",sum);
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值