思路:用两个数组来分别存贮排序过的升序和降序的序列,然后用一个for循环来进行比较,如果相等,那么就num1,num2分别 ;然后如果num1 == N 或 者 num2 == N 就输出sort,否则就输出unsort
代码语言:javascript复制#include<bits/stdc .h>
#define maxn 55
using namespace std;
int a[maxn];
int b[maxn];
int c[maxn];
int cmpp(int x,int y){//函数使从大到小排列
return x > y;
}
int main(){
int N;
cin>>N;
for(int i=0;i<N;i ){//输入并赋给两个数组用来排序
cin>>a[i];
b[i] = a[i];
c[i] = a[i];
}
sort(b,b N);//自身从小到大排序
//for(int i=0;i<N;i )
//cout<<b[i]<<" ";
//cout<<endl;
sort(c,c N,cmpp);//自身从大到小排序
// for(int i=0;i<N;i )
//cout<<c[i]<<" ";
// cout<<endl;
int num1 = 0;
int num2 = 0;
for(int i=0;i<N;i ){//判断是否存在N个序列一样的数
if(a[i] == b[i])
num1 ;//若从小到大,num1
if(a[i] == c[i])
num2 ;//一样
}
if(num2 == N || num1 == N) cout<<"sorted"<<endl;//说明是有序的
else
cout<<"unsorted"<<endl;//否则输出无序
return 0;
}