问题标题: 酷町堂:1065

0
0
已解决
方国栋
方国栋
初级光能
初级光能

题目描述 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
已采纳
潮文馨
潮文馨
新手光能
新手光能


    int a[105],n; 
    int maxn=0,maxi=0,minn=10000,mini=0; 
    int main() { 
    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]<<" "; 
    }    
    望采纳!!

1
方国栋
方国栋
初级光能
初级光能

#include<iostream>
using namespace std;
long long cnt,cnt2;
int a[105];
int main(){
    int n,tmp;
    int maxn=-0x3f3f3f3f;
    int minn=0x3f3f3f3f;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    for(int i=1;i<=n;i++){
        if(a[i]>maxn){
            maxn=a[i];
            cnt=i;
        }
        if(a[i]<minn){
            minn=a[i];
            cnt2=i;
        }
    }
    for(int i=1;i<=n;i++){
        tmp=cnt;
        cnt=cnt2;
        cnt2=tmp;
        cout<<a[i]<<" ";
    }
    return 0;
}

//我的代码

1
王文博
王文博
缔造者之神
缔造者之神
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]);

望采纳!

1
朱小川
朱小川
缔造者
缔造者

for(int i=1;i<=c;i++){ cin>>a[i]; if(a[i]>=max) { max=a[i]; d=i;} if(a[i]<min) { min=a[i]; e=i;} } a[d]=min; a[e]=max; for(int i=1;i<=c;i++){ cout<<a[i]<<" "; }

0
我要回答