c语言,数组元素的插入与逆置

2025-04-06 10:06:27
推荐回答(1个)
回答1:

#include 
#define N 10
void myinput(int *p,int n){
    int t,i,j;
    for(j=0;j        scanf("%d",p+j);
        for(i=j;i>0;i--){
            if(p[i]>=p[i-1])
                break;
            t=p[i],p[i]=p[i-1],p[i-1]=t;
        }
    }
}
void myreverse(int *a,int n){
    int i,t;
    for(n--,i=0;i        t=a[i],a[i]=a[n],a[n]=t;
}
void insert(int *a,int num,int n){
    int j,k;
    for(a[j=n-1]=num;j>0;j--){
        if(a[j]>=a[j-1])
            return;
        k=a[j],a[j]=a[j-1],a[j-1]=k;
    }
}
int main(int argc,char *argv[]){
    int n,b[N];
    printf("输入%d个原始数据:\n",N-1);
    myinput(b,N-1);
    for(n=0;n    printf("\n请输入要插入的数:");
    scanf("%d",&n);
    printf("插入%d后的数据为:\n",n);
    insert(b,n,N);
    for(n=0;n    printf("\n逆序后为:\n");
    myreverse(b,N);
    for(n=0;n    printf("\n");
    return 0;
}