中级天翼
给定一个整数序列,找出其中最大和最小值所在的位置,并将最大值和最小值所在位置对调,其他数值的位置保持不变,并输出此序列。(若有多个最大值,则选择最右边的最大值;若有多个最小值,则选择最左边的最小值)。
输入描述 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怎么换行来着
新手光能
1:试试使用long long。
2:注意题目里的这句话:若有多个最大值,则选择最右边的最大值;若有多个最小值,则选择最左边的最小值
你没有判断它是不是最右边的最大值,也没有判断是不是最左边的最小值。这里你if都没有使用,肯定错。需要使用if来写,累加也可以 做出来,只是不太保险。
这里在下一个if里需要添加minn=a[i];
邵悦媛在2020-05-29 23:23:05追加了内容
因为不放心,害怕我发的是错的,所以我提交了,是对的,
图片证明:
中级天翼
你可以先使用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(最小值,最大值)
中级天翼
- 定义 s数组,n,a,b;
- 输入
- 用打擂台的方法找出最大值最小值
- a=最大值的下标
- b=最小值的下标
- swap(s[a],s[b]);
- 输出数组
- 望采纳
徐子宸在2020-05-30 15:57:26追加了内容
printf("%.1f\n%.1f",a,b)
\n!!!