初级光能
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
没思路。。。
缔造者之神
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,maxn=-0x3f3f3f3f,minn=0x3f3f3f3f,a[101],b,c;
cin>>n;
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]);
for(int i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
}
中级守护
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>=maxn){
maxn=a[i];
cnt=i;
}
if(a[i]<minn){
minn=a[i];
cnt1=i;
}
}
int tmp=a[cnt];
a[cnt]=a[cnt1];
a[cnt1]=tmp;
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
宫成在2021-06-11 22:47:00追加了内容
求采纳
中级天翼
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]<<" "; }
初级天翼
#include<bits/stdc++.h>
using namespace std;
int n,a[105],maxn=0,minn=10005,maxi,mini;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>=maxn){
maxn=a[i];
maxi=i;
}if(a[i]<minn){
minn=a[i];
mini=i;
}
}
swap(a[mini],a[maxi]);
for(int i=1;i<=n;i++){
cout<<a[i]<<" ";
}
return 0;
}
中级光能
核心
for(int i=1; i<=n; i++){
if(a[i]==max&&i==fmax){
cout<<min<<" ";
}
else if(a[i]==min&&i==fmin){
cout<<max<<" ";
}
else{
cout<<a[i]<<" ";
}
}
初级天翼
咋又是你???
整型 n,a[105],最大值 等于 -0x3f3f3f3f,最小值 等于 0x3f3f3f3f,posa,posb;
输入 n;
循环 (int i 等于 1;i 小于等于 n;i++){
输入 a[i];
}
循环 (int i 等于 1;i 小于等于 n;i++){
如果 (a[i] 大于等于 max){
max 等于 a[i];
posa 等于 i;
}
如果 (a[i] 小于 min){
min 等于 a[i];
posb 等于 i;
}
}
交换(a[posa] 和 a[posb]);(swap)
循环 (int i 等于 1;i 小于等于 n;i++){
输出 a[i] 和 空格 ;
}