大一C语言数组练习(第一题)

img

#include<stdio.h>
int insertValue(int a[],int order,int len,int n) {
    int p=len-1,i;
    for(i=0; i<len-1; i++) {
        if(order==1) {
            if(a[i]<n) {
                p=i;
                break;
            }
        } else {
            if(a[i]>n) {
                p=i;
                break;
            }
        }
    }
    return p;
}
int main() {
    int len=8;
    int a[]= {1,2,4,5,6,7,8},n,i,order,p;
    printf("请输入要插入的数:");
    scanf("%d",&n);
    order = a[0]>a[len-2]?1:0;//    1表示数组降序 0表示数组升序
    p = insertValue(a,order,len,n);
    for(i=len-2; i>=p; i--) {
        a[i+1]=a[i];
    }
    a[p]=n;
    for(i=0; i<len; i++) {
        printf("%d ",a[i]);
    }
    return 0;
}