递归函数调用问题(c语言)

mmidd 2005-06-30 09:34:20
题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
答案:
#include "stdio.h"
#include "conio.h"
main()
{
int i=5;
void palin(int n);//这行代码是干什么的?为什么去掉不行?下面也用了palin()怎么用两次??
printf("\40:"); //'\40'是什么,这里的40是ASCII中几进制的?
palin(i); //又用了一次,不明白!!
printf("\n");
getch();
}
void palin(n)
int n;
{
char next;
if(n<=1)
{
next=getchar();
printf("\n\0:");// \0又是什么东西?
putchar(next);
}
else
{
next=getchar();
palin(n-1);
putchar(next);
}
}
小弟刚学c语言,问题可能幼稚,见量
...全文
328 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aSalt 2005-06-30
  • 打赏
  • 举报
回复
.......
qinli 2005-06-30
  • 打赏
  • 举报
回复
楼猪连下面的代码都没看懂,不知道是没学到函数这一章,还是学的很马虎啊?编程可得扎扎实实的学哦


void palin(int n);//这行代码是干什么的?为什么去掉不行?下面也用了palin()怎么用两次??
printf("\40:"); //'\40'是什么,这里的40是ASCII中几进制的?
palin(i); //又用了一次,不明白!!
bingbox_1984 2005-06-30
  • 打赏
  • 举报
回复
顶楼上
11308narnar 2005-06-30
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "conio.h"
main()
{
int i=5;
void palin(int n);//函数的声明,不是函数的调用,beyondtkl已经作了解释
printf("\40:"); //'\40'是8进制的转义字符,表明输出一个空格
palin(i); // 这里才是真正的调用函数
printf("\n");
getch(); // 应该是getchar()
}
truewill 2005-06-30
  • 打赏
  • 举报
回复
在调用之前声明,告诉编译器有这个函数定义
在之前哪里都可以,不过{}里面的,外面会看不见

\0是字符串结尾符,这里使用似乎是多余的
\40是8进制的40,相当于空格字符
mmidd 2005-06-30
  • 打赏
  • 举报
回复
声名函数只要在使用函数之前就可以么?位置随便么?
beyondtkl 2005-06-30
  • 打赏
  • 举报
回复
void palin(int n);//这行代码是干什么的?为什么去掉不行?下面也用了palin()怎么用两次??

// 表示palin 是一个函数, 编程都有一个规则就是:必须前置声明! 因为main在后面定义的palin函数前面 所以在使用前需要 声明, 不然就会出错.
jixingzhong 2005-06-30
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "conio.h"
main()
{
int i=5;
void palin(int n);//函数的声明,不是函数的调用,beyondtkl已经作了解释
printf("\40:"); //'\40'是8进制的转义字符,表明输出一个空格
palin(i); // 这里才是真正的调用函数
printf("\n");
getch(); // 应该是getchar() .......错!! 用getch 是对的,
}




1 getch函数是读取一个字符,但是不在终端上(显示器)显示

2 关于函数声明,要求是,在调用函数之前,必须有函数声明。

要注意两点:首先是函数也有作用域,或则说是可调用范围,

就是声明所在的复合语句内,(上面的程序是在main函数中有效)。

一般是在程序开始的时候声明所有的函数,那么在整个程序内,都可用。

其次,就是有一个规则,在没有声明的时候,系统回把函数第一次出现的地方做为函数声明。

比如,很多时候,我们先写一些被调用的函数,再写main函数,

这样,在主函数调用之前就已经定义了函数(注意定义函数和声明函数的区别)

系统会自动识别,而不会报错!!


当然,养成函数声明的习惯是很好的,不容易出错!!

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧