鱼C论坛

 找回密码
 立即注册
查看: 2386|回复: 8

函数怎样返回数组

[复制链接]
发表于 2013-12-8 15:07:39 | 显示全部楼层 |阅读模式

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

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

x
int find(int a)
{
        int j = 0, i, s, b[32] = {0};
        for (i = 1; a / i != 1; i = i * 10) //查询输入的数是几位数
        {
                j++;
                s = j;  //最后得到a是j+1位数
        }
        for (i = 0; i <= j; i++)
        {
                b[i] = a / fang(10,s);
                s--;
        }
        for (i = 1; i <= j; i++) //分别求出这个二进制数的各位数
        {
                s++;
                b[i] = b[i] % fang(10,s+1);
        }
        return b[32];
}
我想写一个函数,数入一个整数,就能把这个数的各位数保存在数组上,并返回主函数,这个要怎么写。这个函数的返回值是int?

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

使用道具 举报

发表于 2013-12-8 20:24:15 | 显示全部楼层
看看学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-8 22:11:41 | 显示全部楼层
研究更改后
int find(int a, int b[32])  //输入一个数,和一个数组,返回这个数的位数
{
        int j = 0, i, s, k;
        for (i = 1; a / i != 1; i = i * 10) //查询输入的数是几位数
        {
                j++;
                s = j;  //最后得到a是j+1位数
        }
        for (i = 0; i <= j; i++)
        {
                b[i] = a / fang(10,s);
                s--;
        }
        for (i = 1; i <= j; i++) //分别求出这个二进制数的各位数
        {
                for (k = 1; k <= i; k++)
                        b[i] = b[i] % fang(10,1);   //fang是一个求次方的函数,第一个数代表底数,第二个表示指数
        }
        return j+1;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-8 22:13:10 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-8 22:53:34 | 显示全部楼层

用指针应该可以,将第一个元素的地址给指针,然后返回指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-8 22:57:34 | 显示全部楼层
maomingkun 发表于 2013-12-8 22:53
用指针应该可以,将第一个元素的地址给指针,然后返回指针。

我直接用了数组,因为数组名就是指针。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-8 23:04:28 | 显示全部楼层
肯定不对。
返回指针是对的,但至少应该是一个在函数内部动态分配的,而不是函数内的局部对象(局部数组),否则函数返回后指针将变为无效的。
还一种方法是在主调函数中分配一个缓冲区,作为参数传入函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-8 23:09:52 | 显示全部楼层
卧室不要床 发表于 2013-12-8 23:04
肯定不对。
返回指针是对的,但至少应该是一个在函数内部动态分配的,而不是函数内的局部对象(局部数组) ...

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

使用道具 举报

发表于 2013-12-9 00:32:40 | 显示全部楼层

慢慢学吧,基础知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 11:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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