目录
题目要求
代码实现
题目要求
判断 整型数组 是否有序
如果 整型数组 有序输出 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");elseprintf("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时,那么就说明 整型数组为乱序
否则就为 升序 或者 降序
代码验证:
整型数组为升序时:
整型数组为降序时:
整数数组为乱序时: