C语言求“一个有序数组,插入一个数后数组仍然有序”不要用break

2025-06-28 09:19:40
推荐回答(2个)
回答1:

#include
int main(void)
{ int i, n, x, a[100]; printf("输入总个数:");scanf("%d", &n);printf("输入%d个数,注意要升序:",n);
for(i = 0; i < n; i++)
scanf("%d", &a[i]);printf("输入要插入的数:");scanf("%d", &x); i=n-1;
while(i>=0&&x{a[i+1]=a[i];i--;}
i++;
a[i]=x; for(i = 0; i < n + 1; i++)
printf("%d ", a[i]);
putchar('\n');
}

回答2:

#include
void main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int i,j,temp,n;
char z;
printf("请输入任意一个整数\n");
scanf("%d",&n);
a[10]=n;
for(i=10;i<11;i++)//插入排序法
{
for(j=0,z='n';i>j&&z=='n';j++)
{
if(a[j]>a[i])
{
temp=a[i];
while(i>j)
{
a[i]=a[i-1];
i--;
}
a[i]=temp;
z='y';
}
}
}
for(i=0;i<11;i++)
printf("插入一个数后的排列结果为:%d\n",a[i]);
}