写一个c++要求:写入8个正整数找出最大的和最小的。并且最大的和最后一个数交换位置,最小的和第一个数交换位置,并倒序输出。
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n=8;
int a[8];
//写入8个正整数
for(int i=0; i<n; i++) cin>>a[i];
//定义最小值
int min=a[0];
//定义最大值
int max=a[0];
for(int i=0; i<n; i++) {
if(a[i]<min) {
min=a[i];
}
if(a[i]>max) {
max=a[i];
}
}
//交换最小值
swap(*min_element(a,a+n),a[0]);
swap(*max_element(a,a+n),a[n-1]);
cout<<"最小值是:"<<min;
cout<<"最大值是:"<<max;
//倒序输出
cout<<"\n倒序输出结果:";
for(int i=n; i>=0; i--)cout<<" "<<a[i];
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[9];
int maxx = 0, minn = 1e9, ma, mi;
for (int i = 1; i <= 8; ++i) {
cin >> a[i];
if (a[i] > maxx) {
maxx = a[i];
ma = i;
}
if (a[i] < minn) {
minn = a[i];
mi = i;
}
}
// cout << maxx << " " << minn << " " << ma << " " << mi << endl;
// cout << a[mi] << " " << mi << " " << a[8];
swap(a[mi], a[8]);
swap(a[ma], a[1]);
for (int i = 1; i <= 8; ++i) {
cout << a[i] << " ";
}
}
电脑没开机,手机AIDE Web打的代码,无法编译,如果有问题,改一下就行了,改不了回复我,问题应该不会很大,但思路就如代码这样
#include <iostream>
#include <vector>
using namespace std;
int main(void){
//用到的vector
vector<int> num,num2;
num.resize(8);
num2.resize(8);
int maxIndex = 0,minIndex = 0;
int temp = 0;
for(int i = 0;i < 8;i++){
cin >> num[i];
//判断输入的数字
if(num[i] > maxIndex)maxIndex = i;
if(num[i] < minIndex)minIndex = i;
}
//互换位置
temp = num[maxIndex];
num[maxIndex] = num[0];
num[0] = temp;
temp = num[minIndex];
num[minIndex] = num[7];
num[7] = temp;
//反转的开头与反转的结尾复制到num2的开头
copy(num.rbegin(),num.rend(),num2.begin());
for(int x : num2)cout << x << endl;
return 0;
}