给你一个C语言的思路吧;
//注:此程序只能精确处理不同的10个数组元素。如果需要自己输入数组,或想要更多的元素比较,可以对程序进行修改
#include
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{
if(arr[i]>max)
max=arr[i];
}
for(int n=0;n{
if(arr[n]==max)
{
return n;
break;
}
}
}
//寻找最小值和下标函数,返回下标
int findMin(int *arr,int len)
{
int min=arr[0];
for (int i=0 ;i{
if(arr[i]min=arr[i];
}
for(int n=0;n{
if(arr[n]==min)
{
return n;
break;
}
}
}
#include
using namespace std;
int main()
{
void max_min(int [],int n) ; // 找到最大值和最小值,并交换位置
int num[10];
int i;
for(i=0;i<10;i++)// 输入10个数
cin>>num[i];
max_min (num,10);
for(i=0;i<10;i++)// 输出10个数
cout<cout < return 0 ;
}
void max_min(int numb[],int n)
{
int i, imax=0, imin=0;
int max=numb[0],min=numb[0];
for(i=1;i{
if(numb[i]>max)
{
max=numb[i];
imax=i;
}
if(numb[i]{
min=numb[i];
imin=i;
}
}
numb[imin]=numb[0]; //最小值与第一个数交换
numb[0]=min;
if ( imax==0 ) //若最大值所在位置是0,则上面被换到了imin位置。
imax=imin ;
numb[imax]=numb[n-1];//最大值与最后一个数交换
numb[n-1]=max;
}
#include
#include
void sawp(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void main(){
int a[10];
int i, j,max,min,k,m,temp;
for (i = 0; i < 10; i++){
scanf("%d", &a[i]);
if (i == 0) { max = min = a[0]; m = k = 0; }
if (max < a[i]){ max = a[i], k = i; }
if (min > a[i]){ min = a[i], m = i; }
}
sawp(&a[0],& a[k]);
sawp(&a[0], &a[m]);
for (i = 0; i < 10; i++)
printf("%d ",a[i]);
getchar();
}
void swap(int&a, int&b)
{
a ^= b;
b ^= a;
a ^= b;
}
void func(int* p)
{
int minIndex = 0;
int maxIndex = 9;
for (int i = 1; i < 9; ++i)
{
if (p[minIndex] > p[i])
minIndex = i;
if (p[maxIndex] < p[i])
maxIndex = i;
}
swap(p[0], p[minIndex]);
swap(p[9], p[maxIndex]);
for (int i = 0; i < 9; ++i)
cout<
}
纯手打,可能有些细节需要调整。