题解——A610数列求最值
2025-12-26 20:33:30
发布于:浙江
6阅读
0回复
0点赞
题目大意:就是循环,在n个数之中找出最小数和最大数。
思路:
这里提供两种方法。
1.本题数据很小,最大才1000,因此可以直接遍历循环枚举,我们用最基础的知识中能知道把一个数min设为-110,绝对比ai小,如果ai>min,那么min=ai,就能求出最大值,核心代码如下:
int min =-110;
if( a[i] > min )min =a[i] ;
以此类推,求最小数可以定义一个一定大于a[i]的数,再判断即可:
int max = 110;
if (a[i]<max)max=a[i];
然后两者结合,配合输入与输出就行了,AC代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[110];
int main(){
int min=-110,max=110;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(a[i]>min)min=a[i];
if(a[i]<max)max=a[i];
}
cout<<max<<" "<<min;
return 0;
}
2.排序
这样更简单明了,当然语法要不错。
我们可以用sort来将这n个数从小到大升序排列,而最小数则是位置最前的数,最大数是位置最后面的数,输出即可,AC代码:
#include<bits/stdc++.h>
using namespace std;
int n,a[110];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
cout<<a[1]<<" "<<a[n];
return 0;
}
不过得考虑不同,如果是for(int i=0;i<n;i++)做循环就得输出a[0]和a[n-1]了
完美散花!
这里空空如也







有帮助,赞一个