函数怎样返回数组
int find(int a){
int j = 0, i, s, b = {0};
for (i = 1; a / i != 1; i = i * 10) //查询输入的数是几位数
{
j++;
s = j;//最后得到a是j+1位数
}
for (i = 0; i <= j; i++)
{
b = a / fang(10,s);
s--;
}
for (i = 1; i <= j; i++) //分别求出这个二进制数的各位数
{
s++;
b = b % fang(10,s+1);
}
return b;
}
我想写一个函数,数入一个整数,就能把这个数的各位数保存在数组上,并返回主函数,这个要怎么写。这个函数的返回值是int?
看看学习下 研究更改后
int find(int a, int b)//输入一个数,和一个数组,返回这个数的位数
{
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 = a / fang(10,s);
s--;
}
for (i = 1; i <= j; i++) //分别求出这个二进制数的各位数
{
for (k = 1; k <= i; k++)
b = b % fang(10,1); //fang是一个求次方的函数,第一个数代表底数,第二个表示指数
}
return j+1;
} maomingkun 发表于 2013-12-8 20:24 static/image/common/back.gif
看看学习下
谢谢留言。 alac 发表于 2013-12-8 22:13 static/image/common/back.gif
谢谢留言。
用指针应该可以,将第一个元素的地址给指针,然后返回指针。 maomingkun 发表于 2013-12-8 22:53 static/image/common/back.gif
用指针应该可以,将第一个元素的地址给指针,然后返回指针。
我直接用了数组,因为数组名就是指针。 肯定不对。
返回指针是对的,但至少应该是一个在函数内部动态分配的,而不是函数内的局部对象(局部数组),否则函数返回后指针将变为无效的。
还一种方法是在主调函数中分配一个缓冲区,作为参数传入函数。 卧室不要床 发表于 2013-12-8 23:04 static/image/common/back.gif
肯定不对。
返回指针是对的,但至少应该是一个在函数内部动态分配的,而不是函数内的局部对象(局部数组) ...
这么复杂:sweat: alac 发表于 2013-12-8 23:09 static/image/common/back.gif
这么复杂
慢慢学吧,基础知识
页:
[1]