目录
题目要求
代码实现
题目要求
判断 整型数组 是否有序
如果 整型数组 有序输出 sorted;否则输出 unsorted
代码实现
#include<stdio.h>
int main()
{
int arr[10] = { 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
//输入
for (int i = 0; i < sz; i++)
{
scanf("%d", &arr[i]);
}
//判断是否有序
int flag_left = 0;
int flag_right = 0;
for (int i = 0; i < sz - 1; i++)
{
if (arr[i] < arr[i + 1])
flag_left = 1;
if (arr[i] > arr[i + 1])
flag_right = 1;
}
//输出
if (flag_left + flag_right == 2)
printf("unsorted\n");
else
printf("sorted\n");
return 0;
}
代码解析:
有序无非两种情况:升序 或者 降序
解析:int flag_left = 0; & 解析:int flag_right = 0;
flag_left 用来判断是否为 升序
flag_right 用来判断是否为 降序
解析:flag_left = 1; & 解析:flag_right = 1;
当 整型数组为升序 时:flag_left 会被赋值为1,而 flag_right 不会改变,还是0
当 整型数组为降序 时:flag_right 会被赋值为1,而 flag_left 不会改变,还是0
当 整型数组为乱序 时:flag_right 和 flag_left 都会被赋值为1
解析:if (flag_left + flag_right == 2)
当 flag_left + flag_right 的和等于2时,那么就说明 整型数组为乱序
否则就为 升序 或者 降序
代码验证:
整型数组为升序时:
整型数组为降序时:
整数数组为乱序时: