函数功能是要求实现将一维数组arr[]中元素从小到大进行排序。注意:数组中元素从下标为0开始存放。
测试点
input
1 3 5 2 6 9
output
1 2 3 5 6 9
#include <stdio.h> void sort(int arr[], int n) { int t,i,j,k; for(i=0;i<n-1;i++) { for(j=i+1;j<n;j++) if(arr[i]>arr[j])//逐个逐个判断条件,满足就交换两值 { t=arr[i]; arr[i]=arr[j]; arr[j]=t; } } } int main() { int arr[6]; int i; for(i=0; i<6; i++) scanf("%d",&arr[i]); sort(arr, 6); for (i = 0; i < 6; i++) { printf("%d ", arr[i]); } return 0; }
用k值作为中间变量去处理i,j关系
#include <stdio.h> void sort(int arr[], int n) { int t,i,j,k; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(arr[j]<arr[k]) {k=j;} //细细去品味其中的东西 t=arr[k]; arr[k]=arr[i]; arr[i]=t; } } int main() { int arr[6]; int i; for(i=0; i<6; i++) scanf("%d",&arr[i]); sort(arr, 6); for (i = 0; i < 6; i++) { printf("%d ", arr[i]); } return 0; }