c语言已有已排好的数组今输入一数要求按原来排序的规,有一个已排好序的数组,今输入一个数,要求按原来排序的规律将它插入数组中。 我哪写错啦,求解~...

满意答案

00e27ab806e4881f8254fe7ae8741834.png

waol2o1rxi2

推荐于 2018.05.15

00e27ab806e4881f8254fe7ae8741834.png

采纳率:44%    等级:10

已帮助:1318人

/*

putin:

12 23 34 45 56 67 78 89 92

putin x : 40

putout:

12 23 34 40 45 56 67 78 89 92

Press any key to continue

*/

#include

void main() { int i,j,N = 10;

int a[10] = {12,23,34,45,56,67,78,89,92};

int x;

printf("putin:\n");

for(i = 0;i < N - 1;i++) printf("%d ",a[i]);

printf("\nputin x : ");

scanf("%d",&x);

for(i = 0;i < N - 1;i++) if(a[i] > x) break;

if(i == N - 1) a[N - 1] = x; // 比最后的数还大时,将x直接填到单元N - 1中

else { // 否则

for(j = N - 2 ;j >= i;j--) a[j + 1] = a[j];

a[i] = x;

}

printf("putout:\n");

for(i = 0;i < 10;i++) printf("%d ",a[i]);

printf("\n");

}追问: 能不能解释一下为什么一定要定义一个N=10才行啊?想不明白,谢谢

追答:N是数组长度。

在插入数据前,数组a有9个数,定义为a[10]是为将要插入的数据预留空间,否则会造成内存覆盖,出现问题很难查出的。

00分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值