判断整数数组元素是否已经按升序排序。
#include<stdio.h>
int main()
{
int prev,next;//这个prev和next很形象啊
int flag=0;//标志,不用多说了吧
scanf("%d",&prev);
while(scanf("%d",&next)!=EOF){//每次输入的next,每一轮结束吧当前next赋给prev
if(next<prev){
flag=1;//判断升序,有一个不等,马上break,前一句改flag;
break;
}
prev=next;
}
if(flag) printf("NO");
else printf("YES");
return 0;
}
https://oj.gxu.icu/contest/334/problem/2
这个题,我之后自己做了一遍还是要用数组,把所有数据全读进去,再用函数判断,如下
#include<stdio.h>
#define Maxsize 5000
int sort(long long a[],int n);
int main()
{
long long a[Maxsize];
int n=0;
while(scanf("%lld",&a[n])!=EOF){
n++;
}
if(sort(a,n)) printf("YES");
else printf("NO");
}
int sort(long long a[],int n)
{
int flag=1;
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
flag=0;
break;
}
}
return flag;
}
本来之前逆序就可以停了,但自己的方法要一直读完。
还有,题目上说的数组大小,和每个元素的大小(10的9次方),10的9次方是可以用int表示的,这个自己不清楚。10^3和2^10差不多,2^32次方就和10的9次方差不多。