这个思路很好理解,找最小值就设一个极大值(如:999999
),此后,每输入一个数,就比较它是否比当前最小值小。如是,则它替代最小值;如否,则输入下一个数。(找最大值以此类推)
管你听没听懂,上代码
这种思路的写法如下:
//exam1 找最小值
#include
using namespace std;
int n,minn=99999; //n是数字个数,minn表示当前最小值
int main ()
{
cin>>n;
for(int i=1;i<=n;i++){
int a;
cin>>a; //输入
if(a<minn) minn=a; //比较
}
cout<<minn;
return 0;
}
运行结果:
而找最大值的代码如下:
//exam2 找最大值
#include
using namespace std;
int n,maxn=-99999; //n是数字个数,maxn表示当前最大值
int main ()
{
cin>>n;
for(int i=1;i<=n;i++){
int a;
cin>>a;
if(a>maxn) maxn=a;
}
cout<<maxn;
return 0;
}
上面的都是基础内容,咱们整点难一点的
比如说,找到最小值的序号
这个可要仔细想想了,我们可以额外设一个变量k
,循环时,临时变量i
从1
开始(这是个好习惯,建议养成),每有一次当前的数小于最小值,则k
为当前i
的值
找最大值反过来就行
代码实现:
#include
using namespace std;
int main ()
{
int n,s=99999,k=1;//s作比较, n数字个数, k序号
cin>>n;
for(int i=1;i<=n;i++){
int a;
cin>>a; //输入
if(a<=s){
s=a; //最小值
k=i; //序号
}
}
cout<<k;
return 0;
}
sort
排序这个算是比较方便的方法了,sort
函数的用法:
sort(开始位置,结束位置,参数)
其中,参数可以为less
、greater
,还可以是其它自定义的函数
C
语言默认的排序顺序:从小到大
从小到大排序用less
,从大到小用greater
cmp
自定义排序函数:
bool cmp(int a,int b){
return a>b; //从大到小
return a<b; //从小到大,也可以写成 return b>a;
}
更多示例可以参考我的另一篇文章:sort
函数排序详解
那么,找最小值的代码如下:
#include
using namespace std;
int a[1005],n;
int main ()
{
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a,a+n); //sort(a,a+n,less());
cout<<a[n];
return 0;
}
sort
函数不支持找序号