#include<stdio.h>
int? main()
{
int a[5]={8,6,5,4,1},i,n=5,temp;
for(i=0;i<n/2;i++)
{
temp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=temp; ?
} ?
for(i=0;i<n;i++)
{
? printf("%d\t",a[i]);
}
system("pause");
return 0;
}
擴展資料:
選擇排序
主要思想就是,基本上默認數組中第壹個元素為最大(最小)值,之後將這個元素和後面的每個元素都進行比較,以由大到小排序為例,當第壹個值遇到比其大的,就進行交換。這樣第壹輪過後,第壹位就是最大的。
接著進行第二輪,由第二個數開始逐個比較,遇到比第二個數大的進行交換,這樣第二輪之後第二個數就是第二大的了,以此類推,不斷進行選擇,最後完成排序。
void selectSort(int numbers[], int length) {
for (int i = 0; i < length; i++) {for (int j = i + 1; j < length; j++) {
? if (numbers[i] < numbers[j]) {
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
? }
}
}}
int main(int argc, const char * argv[]) { int myArray[] = {42, 7, 1, -3, 88}; int length = sizeof(myArray) / sizeof(myArray[0]); selectSort(myArray, length); for (int i = 0; i < length; i++) {printf("%i ", myArray[i]);
} return 0;}
當第壹個數來比較的時候,i = 0,那麽j應該等於i + 1,因為第壹個數要和第二個數開始比,並且比較length - 1次;當i = 1時,j = 2,並且比較length - 2次,以此類推;上面寫的是由大到小排序。