首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >因为循环数组?

因为循环数组?
EN

Stack Overflow用户
提问于 2015-01-19 19:39:48
回答 2查看 44关注 0票数 0

刚刚开始掌握c-编程的诀窍,但我正在尝试创建一个函数,该函数可以计算从给定的基数到十进制格式的数字。(base_to_int)

例如,基10 = 5432的digits1[] = {2,3,4,5},基数8= 501的digits2[] = {5,6,7}

看起来,当我试图运行一个for循环时,它似乎并不是在计算它,而且我总是在数组中得到最后一个数字(对于digits1,我一直得到的输出的答案是“5”)。

为什么我不能在数组中运行一个for循环?

代码:

数字=数组中的数字数,数字=数组,基数=数组编号所在的基。

代码语言:javascript
复制
int base_to_int(int ndigits, int* digits, int base)
{
  for (int n = 0 ; n <= ndigits - 1 ; n++)
    {
      int a = digits[n];
      return  a * pow(base,n);
      }
}

对于这段代码,当我试图编译它时,我一直得到输出"2“。

EN

回答 2

Stack Overflow用户

发布于 2015-01-19 19:42:15

您正在返回计算的第一个结果,请记住,return结束了函数的执行并简单地返回值,所以您只有一个迭代,而不是循环和求和所有值,您的代码相当于:

代码语言:javascript
复制
return  digits[0] * pow(base,0);

变化

代码语言:javascript
复制
return a * pow(base, n);

代码语言:javascript
复制
sum += a * pow(base, n)

当您完成计算时,应该在循环外返回sum (不要忘记在循环之外将sum初始化为0)。

票数 2
EN

Stack Overflow用户

发布于 2015-01-19 19:46:02

正如Maroun Maroun所说,当您编写返回语句时,函数将返回,永远不会计算后面的部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28032296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档