40 条题解
-
59
没难度,就是有点长,可以先用变量保存一下a[0]和a[n - 1],当然也可以反过来
#include <iostream> using namespace std; int main() { int n, a[100], minn = 101, maxx = -1, z, b, y; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { if (a[i] < minn) { minn = a[i]; z = i; } } for (int i = 0; i < n; i++) { if (a[i] > maxx) { maxx = a[i]; b = i; } } y = a[0]; a[0] = minn; a[z] = y; y = a[n - 1]; a[n - 1] = maxx; a[b] = y; for (int i = 0; i < n; i++) { cout << a[i] << " "; } return 0; }
-
14
找出max和min然后按格式输出即可
#include<bits/stdc++.h> using namespace std; int main() { int n,a[101],max=0,min=10000,i; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; if(a[i]>max) { max=a[i]; } if(a[i]<min) { min=a[i]; } //找出最大最小值 } cout<<min<<" "; for(i=2;i<n;i++) { if(a[i]==max) { cout<<a[n]<<" "; } else if(a[i]==min) { cout<<a[1]<<" "; } else { cout<<a[i]<<" "; } } cout<<max; //按格式输出 return 0; }
-
12
全网最短的AC代码来喽!
#include <iostream> using namespace std; int main() { int a[96],n,i,t,p,max=0,min=0; cin>>n; for(i=0;i<n;i++) cin>>a[i]; for(i=1;i<n;i++) if(a[i]<a[min]) min=i; t=a[min],a[min]=a[0],a[0]=t; for(i=1;i<n;i++) if(a[i]>a[max]) max=i; p=a[max],a[max]=a[n-1],a[n-1]=p; for(i=0;i<n;i++) cout<<a[i]<<" "; return 0; }
-
11
这道题一如既往的简单
首先,老规矩,定义并输入数组。
int n; cin >> n; int a[n + 1];//顺眼。 for(int i=1;i<=n;i++){ cin >> a[i]; }
然后,搞出zhui大的和zhui小的。
for(int i=1;i<=n;i++){ if(big < a[i]){ big = a[i]; bign = i; } if (small > a[i]){ small = a[i]; sman = i; } }
然后der然后,交换。
a[bign] = a[n]; a[n] = big; a[sman] = a[1]; a[1] = small;
zhui后,遍历输出。
for(int i=1;i<=n;i++){ cout << a[i] << ' '; }
话不多说上代码!
#include<bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int a[n + 1];//顺眼。 int big = -114514, small = 114514, bign, sman; for(int i=1;i<=n;i++){ cin >> a[i]; } for(int i=1;i<=n;i++){ if(big < a[i]){ big = a[i]; bign = i; } if (small > a[i]){ small = a[i]; sman = i; } } a[bign] = a[n]; a[n] = big; a[sman] = a[1]; a[1] = small; for(int i=1;i<=n;i++){ cout << a[i] << ' ';//TODO } re turn 0; }
小盆友们,您学会了吗?
复制? 代码不易,先点赞,再复制吧! (不要忘了删倒数第二行的空格!)
-
9
十分简单,上代码 #include <iostream> using namespace std; int main() { int n,a[100],S = 100,B = 0,num = 0,sum = 0; cin >> n; for (int i = 1;i <= n;i++) { cin >> a[i]; } num = a[n]; for (int i = 1;i <= n;i++) { if (a[i] < S) { S = a[i]; sum = i; } if (a[i] > B) { B = a[i]; num = i; } } a[sum] = a[1]; a[1] = S; a[num] = a[n]; a[n] = B; for (int i = 1;i<=n;i++) { cout << a[i] << " "; } return 0; }
-
5
#include <iostream> using namespace std; int main() { int n,a[100],x=0,y=100,m,z; cin>>n;//输入 for (int i=0;i<n;i++) { cin>>a[i];//输入 if (a[i]>x) { x=a[i];//获取最大数 m=i;//最大数位置 } if (a[i]<y) { y=a[i];//获取最小数 z=i;//最小数位置 } } a[z]=a[0];//交 a[0]=y;//换 a[m]=a[n-1];//位 a[n-1]=x;//置 for (int i=0;i<n;i++) { cout<<a[i]<<" ";//输出 } return 0; }
编程不易😕 ,赞在哪里👀️ ?
-
4
这一道题可以先求出最大值(max)和最小值(min)然后用 b 和 c 保留最大和最小的索引,然后调用swap函数,调换数组中的值(可以引用万能开头文件),来吧,上代码!
#include <bits/stdc++.h> using namespace std; int main() { int n, a[100], min = 9999999, max = 0, b = 0, c = 0; cin >> n; for (int i=1;i<=n;i++) { cin >> a[i]; if (a[i] < min) { min = a[i]; b = i; } else if (a[i] > max) { max = a[i]; c = i; } } swap(a[b], a[1]); swap(a[c], a[n]); for (int i=1;i<=n;i++) cout << a[i] << " "; return 0; }
-
3
#include<iostream> using namespace std; int main() { int n , a[100] , max = 0, min = 100000000,i; cin >> n; for (int i = 0; i < n;i++) { cin >> a[i]; if (a[i] > max) { max = a[i]; } if (a[i] < min) { min = a[i]; } } cout << min << " "; for (int i = 1;i < n - 1; i++) { if (a[i] == min) { cout << a[0] << " "; continue; } if (a[i] == max) { cout << a[n-1] << " "; continue; } cout << a[i] << " "; } cout << max << " "; return 0; }
-
3
题目要求,求出数组中的最大值和最小值是第一步;
int maxx=0,minn=a[0]; for(int i=0;i<n;i++){ if(maxx<=a[i]){ maxx=a[i]; } if(minn>=a[i]){ minn=a[i]; } }
找到最大值、最小值后,接着就是将原数组的第一位和最后一位数据先存储起来
int f = a[0]; int l = a[n-1];
最后直接遍历元组就行,根据下标判断第一位还是最后一位对应输出,以及根据数据是否是最大还是最小,对应输出原来的第一位和最后一位,其他的照常输出就可以啦(空格隔开)
for(int i=0;i<n;i++){ if(i==0){ //最小值 }else if(i==n-1){ //最大值 }else if(a[i] == minn){ //原数组首位 }else if(a[i] == maxx){ //原数组末位 }else{ //其他不变 } }
-
2
没难度,就是有点长,可以先用变量保存一下a[0]和a[n - 1],当然也可以反过来
#include <iostream> using namespace std; int main() { int n, a[100], minn = 101, maxx = -1, z, b, y; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { if (a[i] < minn) { minn = a[i]; z = i; } } for (int i = 0; i < n; i++) { if (a[i] > maxx) { maxx = a[i]; b = i; } } y = a[0]; a[0] = minn; a[z] = y; y = a[n - 1]; a[n - 1] = maxx; a[b] = y; for (int i = 0; i < n; i++) { cout << a[i] << " "; } return 0; }
-
2
题不难,就是写出来有点长,我拆了两个括号,这才让他稍微简单了一点点(本来有个地方要用函数的,结果一看,不行😕 )
这次的开场白太长了(依然在说废话,可以不看) 还是先捋一捋(可能打错了):
1,先定义变量和数组,然后输入(略)。
2,找到最大值和最小值,以及他们的下标。(如下)
int maxn=-1,minn=1000,p1,p2; for (int i=1;i<=n;i++) { if (a[i]>maxn) { maxn=a[i]; p1=i; } if (a[i]<minn) { minn=a[i]; p2=i; } }
3,交换最小数和第一个数,最大数和最后一个数,可以用原始方法,我这里有两种简单方法
(1)这是因为maxn和a[n]是一样的,这样可以防止数据丢失。
a[p1]=a[n]; a[n]=maxn; a[p2]=a[1]; a[1]=minn;
(2)使用swap函数
swap(a[p1],a[n]) swap(a[p2],a[1])
4,输出(略)
整体代码如下(请付赞观看)。
#include <iostream> using namespace std; int main() { int n; int a[101]; cin>>n; for (int i=1;i<=n;i++) cin>>a[i]; int maxn=-1,minn=1000,p1,p2; for (int i=1;i<=n;i++) { if (a[i]>maxn) { maxn=a[i]; p1=i; } if (a[i]<minn) { minn=a[i]; p2=i; } } swap(a[p1],a[n]) swap(a[p2],a[1]) for (int i=1;i<=n;i++) cout<<a[i]<<" "; return 0; }
-
1
#include<bits/stdc++.h> using namespace std; int main() { int n,a[101],maxx=0,minn=100,x=0,y=0;//x和y用來存儲最大和最小數的下標 cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; if(a[i]>maxx)//判斷最大和最小 { maxx=a[i]; x=i; } if(a[i]<minn) { minn=a[i]; y=i; } } a[x]=a[n-1];//交換 a[y]=a[0]; a[n-1]=maxx; a[0]=minn; for(int j=0;j<n;j++)//輸出 { cout<<a[j]<<" "; } return 0; }
-
1
#include <bits/stdc++.h> using namespace std; int main() { int n,m,num1,num2,maxn=0,minn=10000; cin >> n; int a[n]; for (int i=0;i<n;i++) { cin >> a[i];//输入数组元素 if (a[i]>maxn)//找maxn { maxn = a[i];//设置maxn num1 = i;//设置num1,以便后用 } if (a[i]<minn) { minn = a[i];//设置minn num2 = i;//设置num2,以便后用 } } m = a[0];//以下为调换元素,不明白的找老师 a[0] = minn; a[num2] = m; m = a[n-1]; a[n-1] = maxn; a[num1] = m; for (int i=0;i<n;i++) { cout << a[i] << " ";//输出所有元素 } return 0; }
-
1
直接上代码👇
#include <bits/stdc++.h> using namespace std; int n,a[105],maxx,minn;//a用来存储n个整数,maxx用来存储最大值的下标,minn用来存储最小值的下标 int main() { //注意!!!最大值和最小值初始化为1,因为它们是下标 maxx=1; minn=1; //输入部分(这个不用教了吧) cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } //最大值与最小值(的下标)部分 for(int i=1;i<=n;i++) //再次提醒:maxx和minn是下标 { if(a[maxx]<a[i])//注意是a[maxx] { maxx=i;//注意是i } if(a[minn]>a[i]) { minn=i;//注意是i } } //交换部分(swap函数大家都知道吧) swap(a[1],a[minn]); swap(a[n],a[maxx]); //输出部分(应该不用教了吧) for(int i=1;i<=n;i++) { cout<<a[i]<<" ";//别忘了空格 } return 0; } //自创代码,求赞!!!!!!!
AC证明:
给个赞再Copy别人的AC!
-
0
A C 代 码 , 放 心
食 用使 用#include <iostream> using namespace std; int main() { int n,max1,min1,firstnumber,lastnumber; cin>>n; int a[n]; for (int i=0;i<n;i++) { cin>>a[i]; } firstnumber=a[0]; lastnumber=a[n-1]; //找最大值 max1=a[0]; for (int i=0;i<n;i++) { if (a[i]>max1) { max1=a[i]; } } //找最小值 min1=a[0]; for (int i=0;i<n;i++) { if (a[i]<min1) { min1=a[i]; } } //输出数组 cout<<min1<<" "; for (int i=1;i<n-1;i++) { if (a[i]==min1) { cout<<firstnumber<<" "; } else if (a[i]==max1) { cout<<lastnumber<<" "; } else { cout<<a[i]<<" "; } } cout<<max1<<" "; return 0; }
-
0
#include<iostream> using namespace std; int n,a[99999],c=0,m,q,b=99999; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i]; } for(int i=1;i<=n;i++){ if(a[i]<b){ m=i; b=a[i]; } if(a[i]>c){ q=i; c=a[i]; } } swap(a[1],a[m]); swap(a[n],a[q]); for(int i=1;i<=n;i++){ cout<<a[i]<<' '; } return 0; }
-
0
#include <iostream> using namespace std; int main() { int a,c =100,d = 0,e,f,g; cin>>a; int b[a]; for (int i = 0;i<a;i++) { cin>>b[i]; if (c>b[i]) { c = b[i]; g = i; } } for (int i = 0;i<a;i++) if (d<b[i]) { d=b[i]; f = i; } e = b[0]; b[0]=c; b[g] = e; e = b[a-1]; b[a-1]=d; b[f]=e; for (int i = 0;i<a;i++) { cout<<b[i]<<" "; } }
-
0
#include <iostream> using namespace std; int main() { int n, a[100], minn = 101, maxx = -1, z, b, y; cin >> n; for (int i = 0; i < n; i++) { cin >> a[i]; } for (int i = 0; i < n; i++) { if (a[i] < minn) { minn = a[i]; z = i; } } for (int i = 0; i < n; i++) { if (a[i] > maxx) { maxx = a[i]; b = i; } } y = a[0]; a[0] = minn; a[z] = y; y = a[n - 1]; a[n - 1] = maxx; a[b] = y; for (int i = 0; i < n; i++) { cout << a[i] << " "; } return 0; }
-
0
#include<bits/stdc++.h> using namespace std; int main() { int n,a[101],max=0,min=10000,i; cin>>n; for(i=1;i<=n;i++) { cin>>a[i]; if(a[i]>max) { max=a[i]; } if(a[i]<min) { min=a[i]; } //找出最大最小值 } cout<<min<<" "; for(i=2;i<n;i++) { if(a[i]==max) { cout<<a[n]<<" "; } else if(a[i]==min) { cout<<a[1]<<" "; } else { cout<<a[i]<<" "; } } cout<<max; //按格式输出 return 0; }
信息
- ID
- 212
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 5
- 标签
- 递交数
- 6826
- 已通过
- 2435
- 上传者