课题:C语言中的数组 根据自己的学习体会,总结C中数组的各种类型、特点、系统的处置方式等等
1个回答
2016-06-27
展开全部
调试了一下,是末尾补值语句有逻辑错误,如下图:数组a[],b[]在编译后在内存中是相邻的,即b[7]之后紧接a[0],在i=6时,b[]插入了23,j变成7,又走到i==6的判断,执行了b[j+1]=k语句,此时是b[8]=k(数组越界),b[8]就是a[0]的地址,故看到a[0]被赋值23.i==6的逻辑判断不严密。 修改代码和注释如下:#include int main(){ int i,j,k,a[]={3,5,7,9,10,12,35},b[8]; char flag_inserted=0; //增加1个已完成插入的标志,中间插入与后边补值互斥 printf("请输入需要插入的数:"); scanf("%d",&k); for(i=0,j=0;i<7;i++,j++) { if(i==j) { if(k
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询