【发布时间】:2022-12-18 06:11:10
【问题描述】:
我是编程新手。 在大学里,我接到了一项任务,我必须检查错误的程序代码是否有错误。据我了解,缺少终止条件。如果有人能告诉我如何将它添加到程序代码中,我将不胜感激。我尝试了很多东西,但不幸的是 shell 没有给我任何东西。
程序代码:
#include <stdio.h>
unsigned int sum(unsigned int n) {
return n + sum(n - 1);
}
int main(void) {
unsigned int n = 0;
printf("Summing up from 1 to n with n = ");
if(scanf(" %u", &n) != 1) {
printf("Error!");
return 1;
}
printf("The sum is: %u.", sum(n));
}
【问题讨论】:
-
拿一支铅笔和一张纸,记录如果调用 sum(2) 会发生什么。
-
那么,
sum(1)应该是什么?添加条件检查n与1并返回答案。不过,您可能希望终止于其他号码,例如0,具体取决于您的定义。 -
一般来说,递归规则最好先用数学的方式写出来,然后直接翻译成代码。如
sum(0)=0, sum(n) = sum(n-1) + n for each n>0。此规则包括清除停止条件。
标签: c recursion conditional-statements task termination