鱼C论坛

 找回密码
 立即注册
查看: 2398|回复: 6

输入是个整数对其进行从大到小的排序。

[复制链接]
发表于 2018-11-30 22:25:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么要出现这样的问题。
形式参数和实际参数有什么样的规定。
IMG_20181130_221855.jpg
IMG_20181130_221950.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-11-30 22:41:46 | 显示全部楼层
void sort (int a[i], int a[i-1], inti);        //这句改成void sort (int a[],  int i);
void sort (int a[i], int a[i-1], inti)  //这句改成void sort (int a[],  int i)

...
if (j-1>0)
{
        j--;
        sort(a[j], a[j-1], j); //这句改成 sort(&a[j], j);
}


main里面
sort(a[i], a[i-1], i); //这句改成sort(&a[i], i);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-30 22:52:18 | 显示全部楼层
rencaixiaomeng 发表于 2018-11-30 22:41
void sort (int a, int a, inti);        //这句改成void sort (int a[],  int i);
void sort (int a, int a, int ...

为啥要这样,能帮我解释一下嘛。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-30 23:06:05 | 显示全部楼层
本帖最后由 rencaixiaomeng 于 2018-11-30 23:08 编辑

第一点 参数名不能相同,你声明两个a参数,肯定会出错,而且看你的程序,第二个参数是不需要用到的,直接删去就可以
第二点 C语言里,函数的参数如果是数组的话,实际上传过去的是一个指向该数组第一个成员的指针,并不是传整个数组过去,所以在声明参数的时候不需要写数组大小也不能写数组的大小,void sort (int a[i], int a[i-1], inti) a[i]里的i要去掉
第三点 你每次调用函数的传的不是数组的首地址,这样运行结果可能跟你想要的不一样

sort(&a[j], j); 这是我刚刚让你改的,要改成sort(a, j);
sort(&a[i], i); 这句改成 sort(a, i);
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-30 23:19:31 | 显示全部楼层
rencaixiaomeng 发表于 2018-11-30 23:06
第一点 参数名不能相同,你声明两个a参数,肯定会出错,而且看你的程序,第二个参数是不需要用到的,直接删 ...

fault
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-11-30 23:23:39 | 显示全部楼层

就是改成你说的那样了,然后准备输出的时候就会报错成segmentation fault,这是为什么。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-30 23:25:47 | 显示全部楼层
你代码复制上来啊, 不然怎么知道你代码错在哪
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 20:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表