问题标题: 酷町堂:1065

0
0
已解决
武建豪
武建豪
中级天翼
中级天翼

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

输入描述 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

#include<iostream>
using namespace std;
int s[100];
int main ()
{
    double n,sum;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>s[i];
        cout<<s[i]<<" ";
        s[i]+=sum;
    }
    cout<<sum;
    return 0;
}

哪错了

武建豪在2020-05-29 21:33:06追加了内容

另外问一下,printf怎么换行来着


0
已采纳
邵悦媛
邵悦媛
新手光能
新手光能

1:试试使用long long。

2:注意题目里的这句话:若有多个最大值,则选择最右边的最大值;若有多个最小值,则选择最左边的最小值

    你没有判断它是不是最右边的最大值,也没有判断是不是最左边的最小值。这里你if都没有使用,肯定错。需要使用if来写,累加也可以      做出来,只是不太保险。

这里在下一个if里需要添加minn=a[i];

邵悦媛在2020-05-29 23:23:05追加了内容

因为不放心,害怕我发的是错的,所以我提交了,是对的,

图片证明:

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

你可以先使用long long,然后定义最小值和最大值。先输入a[i],然后判断(判断自己想),最后再交换一下最大值和最小值。最后再输出。

丁博扬在2020-05-30 06:40:00追加了内容

交换的时候可以用swap,你应该知道swap吧(不需要头文件)。还有,printf换行得先输出,再cout换行。

丁博扬在2020-05-30 06:41:47追加了内容

望采纳,谢谢。

 

丁博扬在2020-05-30 06:43:30追加了内容

swap(最小值,最大值)

0
徐子宸
徐子宸
中级天翼
中级天翼
  • 定义 s数组,n,a,b;
  • 输入
  • 用打擂台的方法找出最大值最小值
  • a=最大值的下标
  • b=最小值的下标
  • swap(s[a],s[b]);
  • 输出数组
  • 望采纳

 

徐子宸在2020-05-30 15:57:26追加了内容

printf("%.1f\n%.1f",a,b)

\n!!!

0
0
0
李瑞曦
李瑞曦
高级天翼
高级天翼

我有 70 分的代码,你要吗???

我要回答