#include<stdio.h>
/* 找数组中最大值,并将它移到数组末尾
找到最大值,再移动到末尾
*/
#define size 5
int main()
{
int arr[size]={2,4,3,1,5};
int max=0;
for(int i=1;i<size;i++) //找出最大值下标
{
if(arr[max]<arr[i])
{
max=i;
}
}
if(max!=size-1) //最大值和最后一个元素交换
{
int temp=arr[max];
arr[max]=arr[size-1];
arr[size-1]=temp;
}
for(int i=0;i<size;i++) //打印数组
{
printf("%d ",arr[i]);
}
printf("\n"); //2 4 3 1 5
// return 0;
}
//代码优化
/*
int main()
{
int arr[size]={2,4,3,1,5};
for(int j=0;j<size-1;j++) //使数组内所有元素都按照顺序存储
{
int max=0;
for(int i=1;i<size-j;i++) //减小比较范围,最大值已经放在最后就不用再比较
{
if(arr[max]<arr[i])
{
max=i;
}
}
if(max!=size-1-j) //最大值与后面的值进行交换
{
int temp=arr[max];
arr[max]=arr[size-1-j];
arr[size-1-j]=temp;
}
}
for(int i=0;i<size;i++)
{
printf("%d ",arr[i]);
}
printf("\n"); // 1 2 3 4 5
return 0;
} */