大一新人,求大佬指出错误
算出来的最大值不对
导致最后交换出来的值不对
我不知道错在哪😭
#include<iostream>
using namespace std;
void swap(int*,int*);
int max_a(int a[]){
int max;
int index_max=0;
for(int i=0;i<10;i++)
if(a[i]>max){
max=a[i];
index_max=i;
return index_max;
}
}
int min_b(int a[]){
int index_min=0;
int min;
for(int i=0;i<10;i++)
if(a[i]>min){
min=a[i];
index_min=i;
return index_min;
}
}
int input(int a[]){
cout<<"请输入10个数;"<<endl;
for(int i=0;i<10;i++){
cin>>a[i];
}
}
int output(int a[]){ //输出函数,输出数组a中的所有元素
for(int i=0;i<10;i++)
cout<<a[i]<<" ";
}
int main(){
int a[10]; //定义数组
input(a); //调用函数input接收输入,初始化数组a
output(a); //调用函数output,输出初始化后的数组a
int index_max = max_a(a); //调用max函数找到数组a中最大元素的下标
swap(&a[index_max],&a[9]); //调用swap函数交换最大元素与最后一个元素 a[9]
int index_min = min_b(a);//调用min函数找到数组a中最小元素的下标
swap(&a[index_min],&a[0]); //调用swap函数交换最小元素与第一个元素 a[0]
output(a); //调用函数output,输出交换完成后的数组a
}
void swap(int*x,int*y){
int temp=*x;
*x=*y;
*y=temp;
}