用c语言判定给定数组是否已排好序
时间: 2024-09-08 09:01:04 浏览: 37
在C语言中,可以通过遍历数组并比较相邻元素的方式来判定一个数组是否已经排好序。通常有两种情况,即升序排列和降序排列。以下是实现这两种情况的示例代码:
对于升序排列:
```c
#include <stdio.h>
int isSortedAsc(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
if (arr[i] > arr[i + 1]) {
// 如果当前元素大于下一个元素,则数组未排序好
return 0;
}
}
// 所有相邻元素都满足升序排列条件
return 1;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
if (isSortedAsc(arr, n)) {
printf("数组已经按升序排列。\n");
} else {
printf("数组未按升序排列。\n");
}
return 0;
}
```
对于降序排列:
```c
#include <stdio.h>
int isSortedDesc(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
if (arr[i] < arr[i + 1]) {
// 如果当前元素小于下一个元素,则数组未排序好
return 0;
}
}
// 所有相邻元素都满足降序排列条件
return 1;
}
int main() {
int arr[] = {5, 4, 3, 2, 1};
int n = sizeof(arr) / sizeof(arr[0]);
if (isSortedDesc(arr, n)) {
printf("数组已经按降序排列。\n");
} else {
printf("数组未按降序排列。\n");
}
return 0;
}
```
在这两段代码中,函数`isSortedAsc`用于检查数组是否按升序排列,而`isSortedDesc`用于检查数组是否按降序排列。主函数`main`中调用这两个函数并输出结果。