问题标题: 酷町堂: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
已采纳
王文博
王文博
缔造者之神
缔造者之神

核心:

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];
        } 
    }

望采纳!

0
丁博扬
丁博扬
中级天翼
中级天翼

先输入(你应该会吧)

然后遍历这个数组,找出最大值和最小值

接着

swap(minn,maxn)

minn是最小值

maxn是最大值

最后输出整个数组

0
李沫朴
李沫朴
新手天翼
新手天翼
  • for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ if(a[i]>=maxa){ maxa=a[i]; p=i; } if(a[i]<minn){ minn=a[i]; g=i; } } swap(a[p],a[g]); for(int i=1;i<=n;i++){ cout<<a[i]<<' '; } return 0; }
我要回答