判断是否是有序序列(c语言)

1./描述

//输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。
//
//数据范围:
//3≤n≤50 3≤n≤50 序列中的值都满足 1≤val≤100 1≤val≤100
//输入描述:
//第一行输入一个整数N(3≤N≤50)。
//第二行输入N个整数,用空格分隔N个整数。
//输出描述:
//输出为一行,如果序列有序输出sorted,否则输出unsorted。


2.方法一

我们先输入n,scanf("%d",&n),然后输入数字,如果为升序,那么arr[0]>arr[1],后面再进行判断.如果为降序,那么arr[0]<arr[1],后面再进行判断。注意我们可以用函数,代码可以比较少。

cs 复制代码
#include<stdio.h>
int main()
{
	int n = 0;
	int flag = 0;
	scanf_s("%d", &n);//输入n
	int arr[50] = { 0 };//将输入的数字存储起来
	for (int i = 0; i < n; i++)
	{
		scanf_s("%d", &arr[i]);//输入数字
	}
	if (arr[0] >= arr[1])//判断一位是否大于或者等于,如果大于则后面都大于或者等于
	{
		for (int j = 0; j < n; j++)
		{
			for (int v = 0; v < n-1-j; v++)
			{

				if (arr[j] < arr[j+1+v])
				{
					flag = flag + 1;
					goto end;
				}
			}

		}
	
	}
	else
	{
		for (int j = 0; j < n; j++)
		{
			for (int v = 0; v < n-1-j; v++)
			{

				if (arr[j] > arr[j+1+v])
				{
					flag = flag+1;
					goto end;
				}
			

			}
		}

	}
end:
	if (flag == 0)
		printf("sorted");
	else
	{
		printf("unsorted");
	}
	return 0;
}

3.方法二

当为升序时,flag1=1,当为降序,flag2=1,当为相等,flag1=flag2=0,如果flag1+flag2==1,为sorted,否则为unsorted.

cs 复制代码
//方法二:
#include<stdio.h>
int main()
{
	int n = 0;
	int flag1= 0;//升序
	int flag2 = 0;//降序
	int flag3 = 0;
	scanf_s("%d", &n);//输入n
	int arr[50] = { 0 };//将输入的数字存储起来
	for (int i = 0; i < n; i++)
	{
		scanf_s("%d", &arr[i]);//输入数字
	}
	//升序
	for (int i = 0; i < n-1; i++)
	{
		if (arr[i] >arr[i + 1])
		{
			flag1 = 1;
			
		}
		else if(arr[i]==arr[i+1])
		{
			flag1 = 0;
			flag2 = 0;
		}
		else
		{
			flag2 =  1;
			
		}
	}
	
	if (flag1+flag2 <= 1)
		printf("sorted\n");
	else
		printf("unsorted\n");

}
相关推荐
灵感__idea5 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect14 小时前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱1 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub2 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
祈安_2 天前
C语言内存函数
c语言·后端