我想问一下下面这个程序运行到输入插入数字之后就无法输入了,应该怎么改呢?

#include<stdio.h>
main()
{
int i,j,s,k,insert;
int a[11];
printf("输入10个整数\n");
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=i+1;j<10;j++)
{
if(a[i]>a[j])
{
s=a[i];
a[i]=a[j];
a[j]=s;
}
}
}
printf("\n升序排列结果\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n\n请输入一个待插入的数k\n");
scanf("%d",&k);
for(i=0;i<10;i++)
if(a[j>k])
for(i=9;i>=insert;i--)
a[i+1]=a[i];
a[insert]=k;
printf("\n\n插入K后的升序排列结果\n");
for(i=0;i<11;i++)
printf("%3d",a[i]);
}
麻烦各位了

  1. 有一个错误的地方 if(a[j>k]),估计是你写错的了,这种用法没有意义
  2. 下面给你的参考的代码,在你源代码的基础上进行修改,对比一下即可。
    #include <stdio.h>
    main()
    {
     int i, j, s, k, insert = 0;
     int a[11];
     printf("输入10个整数\n");
     for (i = 0; i < 10; i++)
     {
         scanf("%d", &a[i]);
     }
     for (i = 0; i < 9; i++)
     {
         for (j = i + 1; j < 10; j++)
         {
             if (a[i] > a[j])
             {
                 s = a[i];
                 a[i] = a[j];
                 a[j] = s;
             }
         }
     }
     printf("\n升序排列结果\n");
     for (i = 0; i < 10; i++)
         printf("%3d", a[i]);
     printf("\n\n请输入一个待插入的数k\n");
     scanf("%d", &k);
     for (i = 0; i < 10; i++)
         if (a[i] > k) 
         {
             insert = i;
             for (j = 0; j <= 10 - i; j++)
                 a[11 - j] = a[10 - j];
             break;
         }
     a[insert] = k;
     printf("\n\n插入K后的升序排列结果\n");
     for (i = 0; i < 11; i++)
         printf("%3d", a[i]);
    }
    
    采纳吧小主,Please!

不知道是我的问题吗,我没有看到insert的初始化哎

insert是什么东西,你定义的变量嘛?没有看见他的初始化,