c6.0题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。

[复制链接]
查看11 | 回复4 | 2012-12-29 22:48:54 | 显示全部楼层 |阅读模式
这种题非要用递归做,还真是DT啊。这是之前在网上见到的一个版本,想法挺新颖的。不限5个字符,可以输入多个。#include#includevoid ReverseStr(char* str){
int len = strlen(str);
if (0 != len)
{
char temp = *str;
*str = str[len - 1];
str[len - 1] = '\0';
ReverseStr(str + 1);
str[len - 1] =...
回复

使用道具 举报

千问 | 2012-12-29 22:48:54 | 显示全部楼层
下面函数执行过程如下:具体的栈操作过程如下:abcdef\0temp=afbcdef\0fbcde\0\0
temp=b
fecde\0\0
fecd\0\0\0
temp=c
...
回复

使用道具 举报

千问 | 2012-12-29 22:48:54 | 显示全部楼层
#include#define N 10char *fun(char *p,char *p0);int main(){char c[N]={'a','b','c','d','e','f','g','h','i','j'};char *p=&c[N-1],*p0=&c[0];fun(p0,p);...
回复

使用道具 举报

千问 | 2012-12-29 22:48:54 | 显示全部楼层
首先这个代码有问题,void palin(n)应为void palin(int n)后面的int n;不要了,否则不能编译通过。分析流程很简单:假定输入34567首先n=5;next=getchar()=3;palin(n-1=4);next=getchar()=4(注意关键的地方,这个next和上一个next是不一样的,上一个next被压栈...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行