一维数组的插入问题运行结果有误

img

img


题目是:有一个已排序好序的数组,要求输入一个数后,将原来的排序的规律将它插入到数组中。
不知道为什么运行结果一直错

题主的代码修改如下,供参考:

img

供参考:

#include<stdio.h>
const int N = 10;
int main()
{
    int m, n = 9, i;
    int a[N] = { 1,2,3,4,5,6,7,8,9 };
 
    scanf("%d", &m);  // 待插入的数
 
    if (m > a[n - 1]) { //插入操作
        a[n] = m;
    }
    else {
        for (i = n; m < a[i - 1] && i > 0; i--) {
            a[i] = a[i - 1];
        }
        a[i] = m;
    }
    for (i = 0; i < n + 1; i++)//输出 插入数后的有序数列
        printf("%4d", a[i]);
    printf("\n");
    return 0;
}


#include <stdio.h>
int main()
{
    int a[11],i,j,t,n;
    for(i=0;i<10;i++)
    scanf("%d",&a[i]);
    scanf("%d",&a[10]);
    for(i=0;i<10;++i)
        if(a[10]>a[i]&&a[10]<a[i+1])
    t=a[i+1],a[i+1]=a[10],a[10]=t;
        i=i-1;
    for(i=i+2;i<10;++i)
n=a[i],a[i]=a[10],a[10]=n;
    for(i=0;i<11;++i)
        printf("%d ",a[i]);
    printf("\n");
   return 0;
}