简单粗暴的写法,调用另外一个数组,按照升降序进行排序比对
#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;
}

京公网安备 11010502036488号