这是一道c语言的基础题,希望大家给点意见(程序在头歌编译失败)


#include <stdio.h>

void input(int a[],int num); /* 给数组读入num个整数  */
int isSort(int a[],int num); /* 判断数组是不是按升序排列的,是返回1,不是返回0  */
int findMax(int a[ ],int num); /* 找出数组中的最大值并返回  */

int main()
{
    int n,a[10]={0};
    scanf("%d",&n); 
    input(a,n);
    int i;
    int flag;
    i=isSort(a,n);
    if(i=1)
    {
        printf("Yes");

    }
    else if(i=0)
    {
        flag=findMax(a,n);
        printf("%d",flag);
    }
     /*  n是3到10之间的合法数 */

    /* 在此添加代码 */

    

    return 0;
}
void input(int a[],int num)
{
    int i;
    for(i=0;i<num;i++)
    {
        scanf("%d",&a[i]);
    }
}
int isSort(int a[],int num)
{
    int i;
    for(i=0;i<num-1;i++)
    {
        if(a[i]>a[i+1])
        {
            return 0;
            break;
        }
        else
        return 1;
        
    }
}
nt findMax(int a[],int num)
{
    int i;
    int tmp;
    for(i=0;i<num;i++)
    {
        if(a[i]<a[i+1])
{
  tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
        
           
           
        
    }/*大一的零基础c语言,用了个傻方法,大脑昏昏沉沉。*/
    return a[0];
}

/* 在此添加函数的实现 */v

修改如下:

#include <stdio.h>
void input(int a[], int num); /* 给数组读入num个整数  */
int isSort(int a[], int num); /* 判断数组是不是按升序排列的,是返回1,不是返回0  */
int findMax(int a[ ], int num); /* 找出数组中的最大值并返回  */
int main()
{
    int n, a[100] = {0};
    scanf("%d", &n);
    input(a, n);
    int i;
    int flag;
    i = isSort(a, n);
    if (i == 1)
    {
        printf("Yes");
    }
    else if (i == 0)
    {
        flag = findMax(a, n);
        printf("%d", flag);
    }
    /*  n是3到10之间的合法数 */
    /* 在此添加代码 */

    return 0;
}
void input(int a[], int num)
{
    int i;
    for (i = 0; i < num; i++)
    {
        scanf("%d", &a[i]);
    }
}
int isSort(int a[], int num)
{
    int i;
    for (i = 0; i < num - 1; i++)
    {
        if (a[i] > a[i + 1]) return 0;
    }
    return 1;
}
int findMax(int a[], int num)
{
    int i;
    int tmp = a[0];
    for (i = 0; i < num; i++)
    {
        if (tmp < a[i]) tmp = a[i];
    }
    return tmp;
}