C语言程序求改错 将一个数插入到一个数组中

#include"stdio.h"voidsub1(inta[10]){inti,j,k;for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(a[j... #include "stdio.h" void sub1(int a[10]) { int i,j,k; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) {k=a[j]; a[j]=a[j+1]; a[j+1]=k;} } void sub2(int b[],int k) { int i; for(i=9;i>=0;i--) {if(k<b[i]) ... #include "stdio.h" void sub1(int a[10]) { int i,j,k; for(i=0;i<9;i++) for(j=0;j<9-i;j++) if(a[j]>a[j+1]) {k=a[j]; a[j]=a[j+1]; a[j+1]=k;} } void sub2(int b[],int k) { int i; for(i=9;i>=0;i--) {if(k<b[i]) {b[i+1]=b[i];b[i]=k;} else {b[i+1]=k;break;}} } void main() { int i,a[10],n; printf("please input ten numbers: \n"); for(i=0;i<10;i++) scanf("%d",&a[i]); sub1(a); printf("please input a number: \n"); scanf("%d",&n); sub2(a,n); for(i=0;i<11;i++) printf("%d ",a[i]); } sub1是对10个数升序排序,sun2是将一个数插入到数组中仍按升序排序,但我的程序输出最后一个永远是10 求帮忙改错 展开 展开
 我来答
乜夏养书萱
2019-01-05 · TA获得超过3969个赞
知道小有建树答主
回答量:3096
采纳率:32%
帮助的人:198万
展开全部
1、你的a[10]数组只定义了10个。。亲。。你输出的时候,输出了11个。。第11个是非法的呢。。没有分配的空间的。。。
2、你得自己学会调试呢。。比如你执行完sub1()的时候,你输出下。。如果正确,那么肯定就在sub2()出错啦。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式