输入一个整数,然后将整数插入有序数列中,不能先存放

img

你循环条件是i>8肯定不对,应该是i<11

scanf("%d", &i);输入的变量不应该是i,应该是d
改成 scanf("%d", &d);

12行 应该是 a[i] <= d

你题目的解答代码如下:

#include<stdio.h>

int main()
{
    int a[10]={12,11,10,8,7,6,5,4,3,2};
    int b[11];
    int i,shift,d,found;
    scanf("%d",&d); //i 改成 d
    found=0,shift=0;
    for(i=0;i<10;i++)
    {
        if((!found)&&(a[i]<=d)) // >=改成<=
        {
            found=1;
            shift=1;
            b[i]=d;
        }
        b[i+shift]=a[i];
    }
    if(!found) b[10]=d;
    printf("结果:");
    for(i=0;i<11;i++) // 改成 i<11
        printf("%d ",b[i]);
    return 0;
}

img

如有帮助,望采纳!谢谢!

我不知道哪里错了,但是输出结果不对