给你一个C语言的思路吧;
//注:此程序只能精确处理不同的10个数组元素。如果需要自己输入数组,或想要更多的元素比较,可以对程序进行修改
#include<stdio.h>
void Change(int *a,int *b);
int findMax(int *arr,int len);
int findMin(int *arr,int len) ;
int main(void)
{
int arr[10]={5,2,3,4,1,6,7,19,8,12};
int maxN,minN,lenth=10;
//寻找最小值、下标
minN=findMin(arr,lenth);
//最小值与第一个数交换
Change(&arr[minN],&arr[0]);
//寻找最大值、下标
maxN=findMax(arr,lenth);
//最大值与最后一位交换
Change(&arr[maxN],&arr[9]);
//数组输出
for(int j=0;j<10;j++)
printf(" %d ",arr[j]);
return 0;
}
//定义交换函数,指针方法实现交换数字
void Change(int *a,int *b)
{
int t;
t=*a;
*a=*b;
*b=t;
}
//寻找最大值和下标函数,返回下标
int findMax(int *arr,int len)
{
int max=arr[0];
for (int i=0 ;i<len;i++)
{
if(arr[i]>max)
max=arr[i];
}
for(int n=0;n<len;n++)
{
if(arr[n]==max)
{
return n;
break;
}
}
}
//寻找最小值和下标函数,返回下标
int findMin(int *arr,int len)
{
int min=arr[0];
for (int i=0 ;i<len;i++)
{
if(arr[i]<min)
min=arr[i];
}
for(int n=0;n<len;n++)
{
if(arr[n]==min)
{
return n;
break;
}
}
}
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/3812b31bb051f81998f6dc11d9b44aed2f73e79e?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)