问题标题: 酷町堂:1065 最值对调

0
0
已解决
盛慧慧
盛慧慧
初级光能
初级光能

1065   最值对调

经验值:0 时间限制:1000毫秒

题目描述 Description

给定一个整数序列,找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。(若有多个最大值,则选择最右边的最大值;若有多个最小值,则选择最左边的最小值)。

输入描述 Input Description

输入为两行:
第一行为整数N,表示序列的的长度;(N≤100)
第二行为N个整数,每个数之间以单个空格隔开(0~10000)。

输出描述 Output Description

输出为一行,为最值对调后的整数序列

样例输入 Sample Input

10 1 2 3 1 4 5 10 6 10 8

样例输出 Sample Output

10 2 3 1 4 5 10 6 1 8

 

没思路。。。


0
已采纳
王文博
王文博
缔造者之神
缔造者之神
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,maxn=-0x3f3f3f3f,minn=0x3f3f3f3f,a[101],b,c;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
        if(a[i]>=maxn) 
        {
            maxn=a[i];
            b=i;
        }
        if(a[i]<minn)
        {
            c=i;
            minn=a[i];
        } 
    }
    swap(a[b],a[c]);
    for(int i=1;i<=n;i++)
    {
        cout<<a[i]<<" ";
    }
}

 

0
0
宫成
宫成
中级守护
中级守护

cin>>n;

for(int i=1;i<=n;i++){

cin>>a[i];

if(a[i]>=maxn){

maxn=a[i];

cnt=i;

}

if(a[i]<minn){

minn=a[i];

cnt1=i;

}

}

int tmp=a[cnt];

a[cnt]=a[cnt1];

a[cnt1]=tmp;

for(int i=1;i<=n;i++){

cout<<a[i]<<" ";

}

宫成在2021-06-11 22:47:00追加了内容

求采纳

0
0
李牧晓
李牧晓
中级天翼
中级天翼

cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ if(a[i]<minn){ minn=a[i]; mini=i; } if(a[i]>=maxn){ maxn=a[i]; maxi=i; } } swap(a[maxi],a[mini]); for(int i=1;i<=n;i++){ cout<<a[i]<<" "; }

0
李奕歌
李奕歌
初级天翼
初级天翼
#include<bits/stdc++.h>
using namespace std;
int n,a[105],maxn=0,minn=10005,maxi,mini;
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        if(a[i]>=maxn){
            maxn=a[i];
            maxi=i;
        }if(a[i]<minn){
            minn=a[i];
            mini=i;
        }
    }
    swap(a[mini],a[maxi]);
    for(int i=1;i<=n;i++){
        cout<<a[i]<<" ";
    }
    return 0;
}

 

0
高舒豪
高舒豪
中级光能
中级光能

核心

for(int i=1; i<=n; i++){
        if(a[i]==max&&i==fmax){
            cout<<min<<" ";
        }
        else if(a[i]==min&&i==fmin){
            cout<<max<<" ";
        }
        else{
            cout<<a[i]<<" ";
        }
    }

 

0
潘艺博
潘艺博
初级天翼
初级天翼

咋又是你???

整型 n,a[105],最大值 等于 -0x3f3f3f3f,最小值 等于 0x3f3f3f3f,posa,posb;
    输入 n;
    循环 (int i 等于 1;i  小于等于 n;i++){
       输入 a[i];
    }
    循环 (int i 等于 1;i 小于等于 n;i++){
        如果 (a[i] 大于等于 max){
            max 等于 a[i];
            posa 等于 i;
        }
        如果 (a[i] 小于 min){
            min 等于 a[i];
            posb 等于 i;
        }
    }
    交换(a[posa] 和 a[posb]);(swap)
    循环 (int i 等于 1;i 小于等于 n;i++){
        输出 a[i] 和 空格 ;
    }

0
阮文涛
阮文涛
新手守护
新手守护

核心:
    int n,a[10005],max[10],min[10];
    cin>>n;
    max[0]=0;
    min[0]=1000000; 
    for(int i=0;i<n;i++){
        cin>>a[i];
        if(min[0]>a[i]){
            min[0]=a[i];
            min[1]=i;
        }
        if(max[0]<=a[i]){
            max[0]=a[i];
            max[1]=i;
        }
    }
    swap(a[max[1]],a[min[1]]);
    for(int i=0;i<n;i++){
        cout<<a[i]<<" ";
    }

我要回答