用C语言帮我写段代码实现给定t组数据 每组数据包含一个整数n,和n个整数。 请给出每组的n个整数是否为非降序排列的判断,是的话输出yes,否则输出no。 非降序排列是指一串数字里相邻的两个数字ai和ai+1一定满足ai<=ai+1 如果数列只有一个元素,则默认满足非降序性质。
时间: 2023-06-25 22:08:01 浏览: 54
判定给定数组是否已排序
下面是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int t, n, i, j;
scanf("%d", &t); // 输入数据组数
while (t--) {
scanf("%d", &n); // 输入每组数据的长度
int a[n];
for (i = 0; i < n; i++) {
scanf("%d", &a[i]); // 输入每组数据的元素
}
int flag = 1; // 假设为非降序排列
for (i = 0; i < n-1; i++) {
if (a[i] > a[i+1]) { // 判断相邻两个元素是否满足非降序
flag = 0; // 不满足非降序排列
break;
}
}
if (flag) {
printf("yes\n");
} else {
printf("no\n");
}
}
return 0;
}
```
代码的思路是先输入数据组数,然后对于每组数据,先输入该组数据的长度,再输入该组数据的元素。接着从第一个元素开始遍历,判断相邻两个元素是否满足非降序排列,若有不满足的,则标记为0,否则标记为1。最后根据标记输出yes或no。
阅读全文