菜鸟请教:c语言 函数为什么会调用不成功?

自己写了一个对数组元素排序的小程序,编译链接没有错误,但是就是出了来结果,debug过很多回,但是找不出原因,请教原因!!!#include<stdio.h>voidre... 自己写了一个对数组元素排序的小程序,编译链接没有错误,但是就是出了来结果,debug过很多回,但是找不出原因,请教原因!!!
#include <stdio.h>

void rest(int a[],int n)
{
int temp,j=0,i,k;
for(i=0,k=n-1;i<=k;)
{
if(a[i]>0)
{
temp=a[i];
a[i]=a[k];
a[k]=temp;
k--;
}
else if(a[i]=0)
i++;
else if(a[i]<0)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
j++;
i++;
}
}
}

int b[]={8,4,0,1,6,0,5};
void main()
{
int i;
printf("The arry before rest is:\n");
for(i=0;i<7;i++)
printf("%4d",b[i]);
rest(b,7);
printf("\nThe arry after rest is:\n");
for(i=0;i<7;i++)
{
printf("%4d",b[i]);
}
}
展开
 我来答
剑影越林
2013-10-29 · TA获得超过822个赞
知道小有建树答主
回答量:402
采纳率:0%
帮助的人:316万
展开全部
我表示很不理解啊,直接写从小到大排列不就是负数在左边,0在中间,正数在右边吗?
冒泡排序法,快速排序,插入排序……
也可以直接调用函数qsort也行
void sort(int *p,int n) {
int i,j;

for(i=0;i<n-1;i++) {

int leap=1;

for(j=0;j<n-1-i;j++) {
if(p[j]>p[j+1])

{int temp=p[j];p[j]=p[j+1];p[j+1]=temp;leap=0;}

}
if(leap) return;

}

}
不知道写错没
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-10-29
展开全部
我也刚刚学C语言 也不太懂 如果说的不对 见谅哈 是不是rest函数里面i的变量没有发生变化啊 i一直都是0吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
与子如初见
2013-10-29 · TA获得超过1638个赞
知道小有建树答主
回答量:1117
采纳率:100%
帮助的人:797万
展开全部
else if(a[i]=0) 中的a[i] = 0改为a[i] == 0;
追问
对一个一维数组进行排序(不是按大小,而是按正负数),即0在中间,负数在前面,正数在后面,
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huinan1988
2013-10-29 · 超过26用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:60.8万
展开全部
看错问题。。 罪过罪过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式