#include<stdio.h>//习题7.1 选择法排序
#define N 10
main()
{
int n,i,j,a[N],k,t;
printf("Enter n:");
scanf("%d",&n);
printf("Enter %d numbers:",n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
k=i;//存放最小值下标
for(j=i+1;j<n;j++)
{
if(a[j]>a[k]){
k=j;//找到最大值,把下标赋给k
}
}
t=a[k];
a[k]=a[i];//把找到的那个最大值a[j]即a[k]和a[i]互换,
a[i]=t;
}
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}
书上的解法;
简单冒泡
int main() {
int n = 0;
scanf("%d", &n);
int arr[10] = { 0 };
int i = 0;
for (i = 0; i < n; i++) {
printf("输入数字n\n");
scanf("%d", &arr[i]);
}
for (i = 0; i < n; i++) {
int j = 0;
for (j = 0; j < n - i; j++) {
if (arr[j] < arr[j + 1]) {
int tem = 0;
tem = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tem;
}
}
}
for (i = 0; i< n; i++) {
printf("%d\n",arr[i]);
}
return 0;
}