c语言判断数组升序题

描述
判断整数数组元素是否已经按升序排序。

格式
输入格式
第一行输入一个数 n  表示这个数组有n个数  1<=n<=20
接下来n行  每行一个数。表示数组的各个数。

输出格式
如果已经排序输出YES
如果没有排序输出NO

样例
样例输入 
6
1
2
3
4
5
6
样例输出 
YES

从第2个数开始逐个判断,是否比前一个数大,如果是就是已经排好,否则就是no
代码如下:

#include <stdio.h>
int main()
{
    int n,v1,v2,i;
    int flag = 0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        if(i==0)
            scanf("%d",&v1);
        else
        {
            scanf("%d",&v2);
            if(v2 < v1)
            {
                flag = 1;
            }
            v1 = v2;
        }
    }
    if(flag == 1)
        printf("NO");
    else
        printf("YES");
    return 0;
}

int n;
int a[20];
bool IsSorted=true;
scanf("%d",&n);
for(int i=0;i<n;i++)
    scanf("%d",&a[i]);
for(int i=1;i<n;i++)
    if(a[i]<a[i-1]){
        IsSorted=false;
        break;}
if(IsSorted)
printf("YES");
else
printf("NO");
#include<stdio.h>
int main() {
    int n,i,a[20],j,t=0;
    scanf("%d",&n);
    for(i=0;i<n;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<n-1;i++){
        for(j=0;j<n-1-i;j++){
            if(a[j]>a[j+1]){
                t=1;
                break;
            }
        }
    }
    if(t==0) printf("YES");
    else printf("NO");    
    return 0;
}