利用函数指针 综合求数组的升序和降序

xiaoxiao2025-11-17  7

//升序和降序 #include <stdio.h> #define N 50 int Ascend(int a, int b); int Descend(int a, int b); void Swap(int *a, int *b); void Sort(int a[], int n, int (*compare)(int, int)); int main() { int i, n; int score[N]; scanf("%d", &n); for(i=0; i<n; i++) { scanf("%d", &score[i]); } Sort(score, n, Ascend); Sort(score, n, Descend); return 0; } void Sort(int a[], int n, int (*compare)(int, int)) { int i, j, k; for(i=0; i<n-1; i++) { k = i; for(j=i+1; j<n; j++) { if((*compare)(a[k], a[j])) k = j; } if(k != i) Swap(&a[i], &a[k]); } for(i=0; i<n; i++) { printf("%d ", a[i]); } printf("\n"); } int Ascend(int a, int b) { return a > b; } int Descend(int a, int b) { return a < b; } void Swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = *temp; }

 

转载请注明原文地址: https://www.6miu.com/read-5039776.html

最新回复(0)