求大佬
#include<stdio.h>#include <conio.h>
int main (void)
{
void f (int n);
int n=5;
f(5);
}
void f (int n)
{
char a;
if(n==1)
{
a=getchar();
putchar(a);
}
else{
a=getchar();
f(n-1);
putchar(a);
}
}
这个程序可以使输入的五个字符逆序数出,但是没看懂函数的原理,求大佬解释一下
#include<stdio.h>
#include <conio.h>
int main(void)
{
void f(int n); // 定义函数
int n = 5;
f(5); // 将整型数字 5 作为实参,调用函数
}
void f(int n) // 定义函数体,形参为整型变量
{
char a;
if (n == 1) // 如果接收的实参等于 1,也就是只有一个字符
{
a = getchar(); // 则直接将字符输出
putchar(a); // 输出字符(最后那个字符是在这里输出的,因为 n == 1)
}
else { // 如果接收的实参大于 1,也就是不只一个字符
a = getchar(); // 将接收的字符存入变量 a
f(n - 1); // 递归调用函数,直到 f(0) 为止
putchar(a); // 输出字符
}
}
页:
[1]