| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1071 人关注过本帖
标题:怎么在子函数里计算传入数组的元素个数?
只看楼主 加入收藏
Ericzha6116
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-1-26
结帖率:0
收藏
已结贴  问题点数:4 回复次数:2 
怎么在子函数里计算传入数组的元素个数?
......
static int f3(int x[],int begin) //计算数组从begin项开始到结束的代数和。递归算法
{
    if(begin == sizeof(x)/sizeof(x[0])) return 0;  //就这里有问题,运行后结果是1,我把 sizeof(x)/sizeof(x[0])直接写成5,结果正确。
    else
    return x[begin] + f3(x,++begin);
}
int main()
{
    int consequence;
    int a[] = {1,3,0,9,3};
    consequence = f3(a,0);
    cout << consequence;
}

这个参数要怎么传啊?(不要增加第三个参数到子函数)
搜索更多相关主题的帖子: return 代数和 元素 
2017-01-26 15:22
zbjzbj
Rank: 12Rank: 12Rank: 12
来 自:郑州
等 级:贵宾
威 望:52
帖 子:633
专家分:3045
注 册:2011-4-22
收藏
得分:2 
倒着计算:
static int f3(int x[],int end) //计算数组从end项到开始的代数和。递归算法
{
    if(end < 0) return 0;
    else
    return x[end] + f3(x,--end);
}
int main()
{
    using namespace std;
    int consequence;
    int a[] = {1,3,0,9,3};
    int len = sizeof(a)/sizeof(a[0]);
    consequence = f3(a,len-1);
    cout << consequence;
}
2017-01-27 00:33
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:2 
回复 楼主 Ericzha6116
感觉只能把sizeof(a)/sizeof(a[0])作为一个参数传进函数,要在函数里面获取长度似乎确实不行。
2017-01-30 22:14
快速回复:怎么在子函数里计算传入数组的元素个数?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017511 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved