简单粗暴的写法,调用另外一个数组,按照升降序进行排序比对
#include<stdio.h> #include<string.h> cmp_asc_int(const void* e1, const void*e2) { return *((int*)e1) - *((int*)e2); //升序 } cmp_desc_int(const void* e1, const void*e2) { return *((int*)e2) - *((int*)e1); //降序 } int main() { int arr[50] = { 0 }, arr1[50] = { 0 }; int n = 0, flag = 0, i = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", arr + i); } memcpy(arr1, arr, n*4); if (arr[1] < arr[0]) qsort(arr1, n, sizeof(int), cmp_desc_int); else qsort(arr1, n, sizeof(int), cmp_asc_int); for (i = 0; i < n; i++) { if (arr[i] != arr1[i]) { flag = 1; break; } } if (!flag) printf("sorted\n"); else printf("unsorted\n"); return 0; }