一个已经按照从小到大排序好的数组。输入一个数字,然后将这个数字插入数组中,从小到大输入插入数字后的数组。
我的代码该怎么改啊,我看书上好像也是这样写的哇怎么就不对嘞
#include
int main()
{
int a[10]={1,2,3,4,7,9,10,100,150};
int n;
int i,j=0,k;
scanf("%d",&n);
while(n>a[j]){
j++;
}printf("j=%d\n",j);
for(i=8;i>=j;i--){
a[i+1]=a[i];
a[j]=n;
} for(k=0;k<=9;k++){
printf("%d ",a[k]);}
}
a[j]=n放到for循环后面,不能放在里面
这么写,供参考:
#include<stdio.h>
const int N = 10;
int main()
{
int m, n = 9, i;
int a[N] = { 1,2,3,4,7,9,10,100,150 };
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;
}