帮我用c语言编写一个程序检查数组中的数值是否以1,2…n的顺序排列
时间: 2024-11-24 21:40:55 浏览: 7
在C语言中,我们可以创建一个函数来检查给定数组是否按升序排列,从1到n。这里是一个简单的示例:
```c
#include <stdio.h>
int is_sorted(int arr[], int n) {
// 如果数组长度小于1,直接返回1,因为空数组或单元素被视为有序
if (n <= 1)
return 1;
// 遍历数组,假设前n-1个元素已经排序好了
for (int i = 0; i < n - 1; i++) {
// 检查当前元素是否比下一个元素小
if (arr[i] != i + 1) {
// 发现不连续的序列,返回0表示不是递增序列
return 0;
}
}
// 遍历结束,说明数组是按1到n的顺序排列的
return 1;
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int n = sizeof(arr) / sizeof(arr[0]);
if (is_sorted(arr, n))
printf("Array is sorted from 1 to %d\n", n);
else
printf("Array is not sorted in ascending order\n");
return 0;
}
```
这个程序定义了一个`is_sorted`函数,它接受一个整数数组和它的大小作为参数,然后通过循环检查每个元素是否等于其索引加1。如果找到不满足条件的情况,就立即返回0;否则,遍历完整个数组后返回1。
阅读全文