0
已解决
潘晨皓
高级天翼
高级天翼
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[110],n,k,j,maxn=0,minn=100000;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>=maxn){
maxn=a[i];
k=a[i];
}
else if(a[i]<minn){
minn=a[i];
j=a[i];
}
}
a[k]=minn;
a[j]=maxn;
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
//1065
WA:0分
1065 最值对调
题目描述 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
呜呜呜,求大神解答……
由于今天下午要考试,所以心血来潮来刷题了,结果第一题就……
潘晨皓在2020-08-05 15:24:06追加了内容
顶!
潘晨皓在2020-08-05 15:33:24追加了内容
ding
潘晨皓在2020-08-05 17:19:33追加了内容
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[110],n,k,j,maxn=0,minn=100000;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>=maxn){
maxn=a[i];
k=i;
}
else if(a[i]<minn){
minn=a[i];
j=i;
}
}
minn=a[k];
maxn=a[j];
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
现在处于奇葩状态,求解!!!
潘晨皓在2020-08-06 13:47:58追加了内容
ding
潘晨皓在2020-08-06 13:49:11追加了内容
啊啊啊!求大佬解决!!!
QWQ
有想当管理员的私信给我
0
已采纳
贾志骜
新手光能
新手光能
k=i;
j=i;
贾志骜在2020-08-05 17:20:59追加了内容
等号左右换一下
贾志骜在2020-08-05 17:27:40追加了内容
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[1100],n,k,j,maxn=0,minn=100000;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>=maxn){
maxn=a[i];
k=i;
}
else if(a[i]<minn){
minn=a[i];
j=i;
}
}
a[k]=minn;
a[j]=maxn;
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
帮你改好了,试试
0
黄子扬
初级天翼
初级天翼
k=a[i]?
k=i!
j也一样
黄子扬在2020-08-05 15:04:27追加了内容
中级天翼dalaoOrz
黄子扬在2020-08-05 15:04:33追加了内容
中级天翼dalaoOrz
黄子扬在2020-08-05 15:04:38追加了内容
中级天翼dalaoOrz
黄子扬在2020-08-05 15:07:38追加了内容
服了,你这赋值以后自己等于自己
0
朱优扬
中级天翼
中级天翼
循环里面的if内容是maxn2=i(minn2=i)
循环外全部不要了!改成:
在循环外swap(a[maxn2],a[minn2]);
再来一个for循环
内容:
判断a[i]!=minn&&i!=maxn2||a[i]!=maxn&&i!=minn2
输出
否则
判断(a[i]==minn&&i==maxn2){ 输出minn}
判断(a[i]==maxn&&i==minn2){ 输出maxn }
0