【发布时间】:2013-07-29 03:51:29
【问题描述】:
我一直在通过各种渠道自学 C。我发现的练习之一是去年的 cs50 问题集(found here 在标题 Bad Credit 下)。从本质上讲,我已经解决了这个问题,但我意识到我正在执行相同的步骤两次,也许可以将该步骤包装在一个函数中以供重用。
我的问题是我不确定如何定义返回到尚未指定的数组。或者,就此而言,如果这是一个好主意。我认为如果我可以让它工作,重用代码将是一件好事,但我不知道该怎么做。
如下代码所示,问题是取一个长数字,将每个单独的数字分开,并执行一些数学运算来进行校验和。这在下面的代码中返回给step1。 do/while 循环在这里完成了繁重的工作,我想做的是对 step1 中的元素做同样的事情,并将它们返回到 step2 或任何其他变量中。
long long num = 378282246310005;
int step1[10];
int step2[10];
do {
int i = 0;
step1[i] = num % 10; // this returns to one array
num /= 10;
i++;
} while (num != 0);
我意识到这对这个问题来说没什么大不了的。我刚刚决定,如果可能的话,最好知道该怎么做。
【问题讨论】:
-
将指向数组的指针传递给函数。
-
我很确定
int i = 0;需要在循环之外。 -
@Casey: 或者你可以改成
static int i = 0;??? -
@WedaPashi:引入全局状态?为什么?
-
@GManNickG:无论如何,他需要让
i成为全球int先生