输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。
数据范围:
序列中的值都满足 
第一行输入一个整数N(3≤N≤50)。第二行输入N个整数,用空格分隔N个整数。
输出为一行,如果序列有序输出sorted,否则输出unsorted。
5 1 6 9 22 30
sorted
5 3 4 7 2 10
unsorted
5 1 1 1 1 1
sorted
#include <stdio.h>
int main() {
int n = 0;
scanf("%d",&n);
int arr[50] = {0};
for(int i = 0;i<n;i++)
{
scanf("%d ",&arr[i]);
}
int flag = 0;
int j = 0;
for(j = 0;j<n-1;j++)
{
if(arr+j+1>=arr+j)
{
//递增
flag++;
}
}
if(flag == n-1 || flag == 0)
{
printf("sorted");
}
else
{
printf("unsorted");
}
return 0;
} #include<stdio.h>
void My_scanf(int arr[],int n)//录入信息函数
{
int i = 0;
for(i=0;i<n;i++)
{
scanf("%d ",&arr[i]);
}
}
int Judge(int arr[],int n ) //判断函数
{
int i = 0;
int j = 0;
int count = 0;
int sum = 0;
for(i=0;i<n-1;i++)
{
if(arr[i]<=arr[i+1])
{
count++;
}
}
for(j=0;j<n-1;j++)
{
if(arr[j]>=arr[j+1])
{
sum++;
}
}
if(count == n-1||sum == n-1)
{
return 1;
}
return 0;
}
int main()
{
int n = 0;
scanf("%d\n",&n);
int arr[n];
My_scanf(arr,n);
int ret = Judge(arr,n);
if(ret == 1)
{
printf("sorted\n");
}
else
{
printf("unsorted\n");
}
return 0;
} #include<stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[20] = { 0 };
int i = 0;
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int j = 0;
int judeg = 1;
//判断是否有序
//通过判断前面数,来决定是升序还是降序
for (i = 0; i < n-1 && judeg == 1;)
{
if (arr[i] > arr[i + 1])
{
//降序
for (j = i; j < n - 1; j++,i++)
{
if (arr[j] < arr[j + 1])
{
judeg = 0;
break;
}
}
}
else if (arr[i] < arr[i + 1])
{
//升序
for (j = i; j < n - 1; j++,i++)
{
if (arr[j] > arr[j + 1])
{
judeg = 0;
break;
}
}
}
else
//左右俩数相等
i++;
}
if (judeg == 1)
printf("YES\n");
else
printf("NO\n");
return 0;
} #include <stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
int a[50]={0};
int b[50]={0};
int c[50]={0};
int i=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
c[i]=a[i];
}
int j=0;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(b[j]<b[j+1])
{
int temp=b[j];
b[j]=b[j+1];
b[j+1]=temp;
}
}
}
int num=0;
int mun=0;
for(i=0;i<n;i++)
{
if(a[i]==c[i])
{
num++;
//printf("1");
}
if(b[i]==c[i])
{
mun++;
}
}
if(num==n||mun==n)
{
printf("sorted");
}
else
{
printf("unsorted");
}
return 0;
} #include <stdio.h>
#include <math.h>
int main() {
int n;
scanf("%d", &n);
int arr[n];
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
}
int sum = 0;
for (int i = 1; i < n; i++) {
if (arr[i] - arr[i - 1] >= 0) sum ++;
else sum--;
}
if (n == (abs(sum) + 1))printf("sorted");
else printf("unsorted");
return 0;
} #include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
//判断是否有序
bool IsOrder(int *a, int size)
{
//降序 1 1 1 1 1 也认为降序
if(a[0] >= a[1])
{
//也要降序
//i为size-1是因为当i = size-1时,i+1不越界
for(int i = 0; i < size - 1; i++)
{
if(a[i] < a[i + 1])
return false;
}
}
else
{
//升序
for(int i = 0; i < size -1; i++)
{
if(a[i] > a[i + 1])
return false;
}
}
return true;
}
int main()
{
int n = 0;
scanf("%d", &n);
int* a = (int*)malloc(sizeof(int) * n);
for(int i = 0; i < n; i++)
{
scanf("%d", &a[i]);
}
//判断是否有序
if(IsOrder(a, n))
printf("sorted");
else
printf("unsorted");
return 0;
} #include <stdio.h>
int main() {
int a[100] = {0};
int count=0,n;
scanf("%d",&n);
for(int i=0;i<n;i++) //输入数值
{
scanf("%d",&a[i]);
}
if(a[0] > a[1])
{
for(int i = 0;i<n-1;i++)
{
if(a[i] < a[i+1])
{
count++;
break;
}
}
}
if(a[0] < a[1])
{
for(int i = 0;i<n-1;i++)
{
if(a[i] > a[i+1])
{
count++;
break;
}
}
}
if(count != 0)
printf("unsorted\n");
else
printf("sorted\n");
return 0;
} #include <stdio.h>
int main() {
int n = 0;
scanf("%d",&n);
int i = 0, j = 0;
int arr[n];
for(i = 0; i < n; i++){
scanf("%d",&arr[i]);
}
for(i = 0; i < n; i++){
for(j = 0; j < i; j++){
if(arr[1] > arr[0] ? arr[i] < arr[j] : arr[i] > arr[j]){
puts("unsorted");
return 0;
}
}
}
puts("sorted");
return 0;
}
#include <stdio.h>
int main() {
int a = 0, arr[50] = { 0 };
scanf("%d", &a);
for (int i = 0; i < a; i++) {
scanf("%d", &arr[i]);
}
int i = 0, j = 1;
while(arr[i] <= arr[j] ) {
i++;
j++;
}
int c = 0, d = 1;
while (arr[c] >= arr[d]&&arr[d]!=0) {
c++;
d++;
}
if (a == j||a==d) {
printf("sorted");
}
else {
printf("unsorted");
}
return 0;
} #include <stdio.h>
int main()
{
int arr[50] = { 0 };
int sz = 0;
int i = 0;
int flag_1 = 0;//降序
int flag_2 = 0;//升序
//输入
scanf("%d", &sz);
for (i = 0; i < sz; i++)
{
scanf("%d", &arr[i]);
//判断
if (i > 0)
{
if (arr[i] < arr[i - 1])//降序
{
flag_1 = 1;
}
else if (arr[i] > arr[i - 1])//升序
{
flag_2 = 1;
}
//2个数字相同,则不处理,直接进入下一轮
}
}
//输出
if (flag_1 + flag_2 <= 1)
{
printf("sorted\n");
}
else
{
printf("unsorted\n");
}
return 0;
}