c语言用函数实现判断给定数组是否排好序
时间: 2024-09-07 07:04:27 浏览: 61
在C语言中,你可以通过定义一个函数来检查整数数组是否已经按升序或降序排列。这里是一个简单的示例,展示了如何使用递归和迭代两种常见方法:
### 1. 使用递归实现(升序判断)
```c
#include <stdio.h>
// 递归函数,假设数组已排序
int is_sorted(int arr[], int size, int i) {
if (i == size - 1) // 如果到达数组末尾
return 1; // 那么数组就是有序的
else if (arr[i] <= arr[i + 1]) // 比较相邻元素
return is_sorted(arr, size, i + 1); // 继续检查下一个元素
else
return 0; // 相邻元素未按顺序,返回0表示无序
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
if (is_sorted(arr, n, 0)) {
printf("数组已排序。\n");
} else {
printf("数组未排序。\n");
}
return 0;
}
```
### 2. 使用迭代实现(升序判断)
```c
#include <stdbool.h> // 引入bool类型
bool is_sorted_iterative(int arr[], int size) {
for (int i = 0; i < size - 1; i++) {
if (arr[i] > arr[i + 1]) // 检查相邻元素
return false; // 如果发现逆序,则返回false
}
return true; // 全部元素都比下一个大,说明有序
}
// 主函数同上...
```
阅读全文