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])
{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
求帮忙改错 展开
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
求帮忙改错 展开
2个回答
展开全部
1、你的a[10]数组只定义了10个。。亲。。你输出的时候,输出了11个。。第11个是非法的呢。。没有分配的空间的。。。
2、你得自己学会调试呢。。比如你执行完sub1()的时候,你输出下。。如果正确,那么肯定就在sub2()出错啦。。
2、你得自己学会调试呢。。比如你执行完sub1()的时候,你输出下。。如果正确,那么肯定就在sub2()出错啦。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |