用C语言写一段代码完成判断一个数列是否是正序排列
时间: 2024-10-10 20:09:13 浏览: 10
在C语言中,要编写一个函数来判断一个数列是否为正序排列,你可以参考以下思路:
思路一[^1]:
```c
#include <stdio.h>
// 判断数组是否为正序的函数
int is_sorted(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 str1[5] = {1, 4, 5, 8, 12}; // 假设这是你要检查的数组
int num_elements = sizeof(str1) / sizeof(str1[0]);
// 判断数组是否正序
if (is_sorted(str1, num_elements)) {
printf("The array is in ascending order.\n");
} else {
printf("The array is not in ascending order.\n");
}
return 0;
}
```
思路二[^2]:
```c
// 定义主函数
int main() {
int n, *arr; // n 是数组长度,*arr 是指针用于存储数组元素
// 从用户输入获取数组长度和元素
scanf("%d", &n);
arr = malloc(n * sizeof(int)); // 分配内存
for (int i = 0; i < n; ++i) {
scanf("%d", &arr[i]);
}
// 调用函数进行判断并输出结果
if (judge_array(arr, n)) {
printf("The array is in ascending order.\n");
} else {
printf("The array is not in ascending order.\n");
}
free(arr); // 释放内存
return 0;
}
// judge_array 函数实现
int judge_array(int *arr, int n) {
// 使用类似上面的循环检查正序
// ...
// 返回判断结果
}
```