新节目主持人来了.
有没有人能帮我了解一下以下项目的流程?我已经在下面的部分提到了我的理解.请让我知道我哪里错了.
这里的目标是用C语言在不使用循环的情况下打印1到n.我能够使用GOTO函数完成这项工作,但无意中发现了下面的解决方案/代码,并遇到了疑问.如有任何帮助,我们不胜感激.
Code个
// Prints numbers from 1 to n
void printNos(unsigned int n)
{
if (n > 0) {
printNos(n - 1);
printf("%d ", n);
}
return;
}
// Driver code
int main()
{
int n = 10;
printNos(n);
getchar();
return 0;
}
我的理解是.
- 在‘main’部分(作为驱动程序代码),我们定义一个名为‘n’的int,并为其赋值10
- 在下一行中,我们将调用函数‘printNos’并将的值作为参数传递给n,即10
- 现在程序跳转到‘printNos’函数,并将n的值接收为10
- 在‘printNos’函数中,程序达到IF条件并判断10是否大于0
- 如果条件为真,现在进入if函数体 This is where i need help from个
- 在这里,根据我的理解,我们再次使用参数10-1(即9)调用‘printNos’函数
- 根据我的理解,这是一个自循环,有一个新的参数n-1,即8,7,6,以此类推,直到n大于0
问题1--打印件是如何制作的? 问题2-在主体中使用getchar()有什么用?