一个C语言排序的小程序

#include<stdio.h>main(){inta[4],i,j,x;printf("input4data:");for(i=0;i<4;i++)scanf("%d... #include<stdio.h>
main()
{
int a[4],i,j,x;
printf("input 4 data:");
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(i=0;i<4;i++)
{
for(j=i;i<4;j++)
{
if(a[i]<a[j+1])
{
x=a[i];
a[i]=a[j+1];
a[j+1]=x;
}
}printf("%d",a[i]);

}

}
这个是我才写的一个 排序的小程序..但是编译连接以后 运行不起....我实在没看出来哪里有错误..达人们 帮我瞧瞧啊...
展开
 我来答
cgiggle
2009-04-14 · TA获得超过1957个赞
知道大有可为答主
回答量:1996
采纳率:0%
帮助的人:1263万
展开全部
数组越界了
比如说在子句当中的j等于3的时候a[j+1]就是越界了
还有最后的a[i]语句也是越界了
推荐程序为
main()
{
int a[10];
int i,j,temp;
printf("input:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
for(j=0;j<10-i;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
for(i=0;i<10;i++)
printf("%4d",a[i]);
printf("\n");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vbtraz
2009-04-14 · TA获得超过5532个赞
知道大有可为答主
回答量:4152
采纳率:0%
帮助的人:4437万
展开全部
内层循环写的有问题。 for(j=i;i<4;j++) 中间这个i, 这死循环了

注意里面你写的都是 a[j+1] 改的时候注意别让j+1越界了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
号阿壹3
2009-04-14 · TA获得超过728个赞
知道小有建树答主
回答量:458
采纳率:0%
帮助的人:403万
展开全部
for(j=i;i<4;j++) 这里怎么是 i?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式