【发布时间】:2021-04-02 09:12:26
【问题描述】:
此函数获取一个数字序列,直到用户输入-1。它应该返回index(mod3)=0 处的数字之和减去其他索引中的数字。
例如:
9 2 4 7 8 1 3 -1
该函数首先对可被三整除的索引处的所有数字求和。所以sum1 应该是5,因为 4 在第 3 个索引处,1 在第 6 个索引处,所有其他索引总和为 sum2。然后它应该从另一个中减去:sum1 - sum2,输出应该是-24(即 sum1 - sum2 = 5 - 29 = -24)
我写了这段代码,但我不明白为什么它不能正常工作,每个序列返回的输出都是 0。
int sumOfSeq();
void main()
{
printf("%d\n", sumOfSeq());
system("pause");
}
int sumOfSeq()
{
int n, curr = 1, sum1 = 0, sum2 = 0;
scanf("%d", &n);
if (n == -1)
return sum1 - sum2;
else
{
if (curr % 3 == 0)
{
sum1 += n;
curr++;
}
else
{
sum2 += n;
curr++;
}
sumOfSeq();
}
}
【问题讨论】:
标签: c recursion computer-science function-definition