鱼C论坛

 找回密码
 立即注册
查看: 4870|回复: 6

汉罗塔一些语法结构没理解到位求指点!

[复制链接]
发表于 2011-12-7 01:24:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
hanoi(int n,int x,int y,int z);
void main()
{

int n;
printf("input number:\n");
scanf("%d",&n);
printf("结果排序是%d\n",n);
hanoi(n,'x','y','z');
}
hanoi(int n,int x,int y,int z)
{
        if(n==1)
                printf("%c-->%c\n",x,z);
        else
        {
                hanoi(n-1,x,z,y);
                printf("%c-->%c\n",x,z);
                hanoi(n-1,y,x,z);
        }
}hanoi(n,'x','y','z'); 这一句是为了调用下面的hanoi(int n,int x,int y,int z)  加以说明 必须加' '  ''这个符号?这是语法结构还是什么?


                               
登录/注册后可看大图
该贴已经同步到 空手套小白狼的微博
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-7 01:48:21 | 显示全部楼层
'x','y','z'


表示的是将字符  ‘x’   传递给 hanoi 函数的变量   int x。。。即在hanoi 中  变量x的值 为字符‘x’

推及后面、、变量 y的值为 字符‘y’    变量z的值为 ‘z’
便于在后面直接用变量名来输出。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-7 09:52:18 | 显示全部楼层
hanoi(n-1,x,z,y);
第一步把n-1个从x移动到y上面去
printf("%c-->%c\n",x,z);
第二步把第n个从x移动到z
hanoi(n-1,y,x,z);
第三不把n-1从y移动到z上面去
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-7 21:25:19 | 显示全部楼层
如果不加' ',编译器会报错, x y z 这三个变量没有定义之类的
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-7 22:02:49 | 显示全部楼层
加了 '' 就是以字符型传参。。是一个常量
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2011-12-10 13:22:22 | 显示全部楼层
那个我都就看晕了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-27 12:26:18 | 显示全部楼层
Y因为他表示的是字符啊
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-9 20:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表