输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。。写3个函数:①输入10个数;②进行处理;③输出10个数
时间: 2024-05-18 15:10:16 浏览: 81
好的,针对您的问题,我可以给出以下答案:
① 输入10个数的函数如下:
```
#include <iostream>
using namespace std;
void input(int a[10]){
for(int i=0;i<10;i++){
cin>>a[i];
}
}
```
以上代码中,我们通过输入流(cin)来读取用户输入的10个整数,并将其保存在一个长度为10的数组a中。
② 进行处理的函数如下:
```
void process(int a[10]){
int maxn=-1e9,minn=1e9;
int maxp,minp;
for(int i=0;i<10;i++){
if(a[i]>maxn){
maxn=a[i];
maxp=i;
}
if(a[i]<minn){
minn=a[i];
minp=i;
}
}
swap(a[0],a[minp]);
swap(a,a[maxp]);
}
```
以上代码中,我们首先定义了两个变量maxn和minn,分别用于保存数组a中最大值和最小值。接着,我们通过遍历数组a找到了最大值和最小值所在的位置,并将其保存在变量maxp和minp中。最后,我们利用C++中的swap函数对数组a进行交换操作,即交换a和a[minp],以及a和a[maxp]。
③ 输出10个数的函数如下:
```
void output(int a[10]){
for(int i=0;i<10;i++){
cout<<a[i]<<" ";
}
}
```
以上代码中,我们通过输出流(cout)将处理后的数组a中的元素一个一个地输出到屏幕上。
最后,我们可以将以上三个函数组合起来,实现完整的程序:
```
#include <iostream>
using namespace std;
void input(int a[10]){
for(int i=0;i<10;i++){
cin>>a[i];
}
}
void process(int a[10]){
int maxn=-1e9,minn=1e9;
int maxp,minp;
for(int i=0;i<10;i++){
if(a[i]>maxn){
maxn=a[i];
maxp=i;
}
if(a[i]<minn){
minn=a[i];
minp=i;
}
}
swap(a,a[minp]);
swap(a,a[maxp]);
}
void output(int a[10]){
for(int i=0;i<10;i++){
cout<<a[i]<<" ";
}
}
int main(){
int a[10];
input(a);
process(a);
output(a);
return 0;
}
```
希望可以帮到您!以下是相关问题:
阅读全文