你循环条件是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;
}
如有帮助,望采纳!谢谢!
我不知道哪里错了,但是输出结果不对