我都要哭了,不只这个代码怎么都会错!!!在线等

Percy_ButtonS 2004-04-01 08:49:42
#include <stdio.h>
#include <iostream>
//#include "Hanoi.h"

//全局
int c=0,n;
char x,y,z;
//函数
//move(char x,int n,char z);
//void Hanoi(int n,char x,char y,char z);

void move(x,n,z)
{
printf("%i.Movedisk %i form%c to %c\n",++c,n,x,z);
}
void Hanoi(int n,char x,char y,char z)
{
if(n==1)
{
move(x,1,z);
}
else
{
Hanoi(n-1,x,z,y);
move(x,n,z);
Hanoi(n-1,y,x,z);
}
}



void main()
{
scanf("%d",n);
Hanoi(n,x,y,z);
}


抱错: (move 这个函数)'<Unknown>' : function-style initializer appears to be a function definition
'move' : undeclared identifier
高手指点啊
帮我看看哪错了?
...全文
34 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohunhun2001 2004-04-01
  • 打赏
  • 举报
回复
char x,y,z;
//函数
//move(char x,int n,char z);
//void Hanoi(int n,char x,char y,char z);

void move(x,n,z)
函数的参数是亚元,在调用过程中才和实参结合。不能用实参做哑元。
Chice_wxg 2004-04-01
  • 打赏
  • 举报
回复
其实你的代码有点问题,我帮你改了:

代码可以正常运行了:

#include <stdio.h>
#include <iostream>

int c=0,n;
char x='A',y='B',z='C';

void move(char x,char n,char z)
{
printf("%i.Move disk %i form %c to %c\n",++c,n,x,z);
}
void Hanoi(int n,char x,char y,char z)
{
if(n==1)
{
move(x,1,z);
}
else
{
Hanoi(n-1,x,z,y);
move(x,n,z);
Hanoi(n-1,y,x,z);
}
}

void main()
{
scanf("%d",&n);
Hanoi(n,x,y,z);
}









以下代码修改较大:
#include <stdio.h>
#include <iostream.h>

void move(char x,int n,char z)
{
static int c=0;
cout << ++c << " Move Disk " << n << " from " << x << " to " << z << endl;
//其实这里也可以用
// printf("%i.Move disk %i form %c to %c\n",++c,n,x,z);
//不过既然你都#include <iostream.h>,肯定是C++程序,用cin/cout更好看一点。
}
void Hanoi(int n,char x,char y,char z)
{
if(n==1)
{
move(x,1,z);
}
else
{
Hanoi(n-1,x,z,y);
move(x,n,z);
Hanoi(n-1,y,x,z);
}
}

void main()
{
int n;

cin>>n;

//其实这里也可以用
// scanf("%d", &n); 注意是&n,不是 n ,如果现在不明白,你以后会明白的。
//不过既然你都#include <iostream.h>,肯定是C++程序,用cin/cout更好看一点。

Hanoi(n,'A','B','C');
}
Chice_wxg 2004-04-01
  • 打赏
  • 举报
回复
男人哭吧哭吧不是罪,呵呵~~~~~~


#include <stdio.h>
#include <iostream>
//#include "Hanoi.h"

//全局
int c=0,n;
char x,y,z;


//注意这里!!!!!!!!!!!!
//void move(x,n,z)
void move(char x,char n,char z)
{
printf("%i.Movedisk %i form%c to %c\n",++c,n,x,z);
}
void Hanoi(int n,char x,char y,char z)
{
if(n==1)
{
move(x,1,z);
}
else
{
Hanoi(n-1,x,z,y);
move(x,n,z);
Hanoi(n-1,y,x,z);
}
}



void main()
{
scanf("%d",n);
Hanoi(n,x,y,z);
}



那一行也可以写成:
void move(x, n, z)
char x, n, z;
{
printf(......)
}

showjancn 2004-04-01
  • 打赏
  • 举报
回复
原则上来说,我个人认为没错,但有的编译器,是要事先申明的,
可安striking(硬撑者) 所说的去做,应该不会再出错了。
wwch99 2004-04-01
  • 打赏
  • 举报
回复
好像是move 函数没有声明,函数里面的变量没有定义,不知道是不是拷贝错误。
striking 2004-04-01
  • 打赏
  • 举报
回复
把你的代码用这个替换
#include <stdio.h>
#include <iostream>
//#include "Hanoi.h"

//全局
int c=0,n;
char x,y,z;
//函数
move(char x,int n,char z);
void Hanoi(int n,char x,char y,char z);

void move(char x,int n,char z)
{
printf("%i.Movedisk %i form%c to %c\n",++c,n,x,z);
}
void Hanoi(int n,char x,char y,char z)
{
if(n==1)
{
move(x,1,z);
}
else
{
Hanoi(n-1,x,z,y);
move(x,n,z);
Hanoi(n-1,y,x,z);
}
}



void main()
{
scanf("%d",n);
Hanoi(n,x,y,z);
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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