伽利略悖论的PPT:请高手帮忙找出错误(vc)

来源:百度文库 编辑:高校问答 时间:2024/05/09 17:08:40
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

char window0()
{char key;
printf("y开始游戏\n n退出游戏");
scanf("%c",&key);
return key;
}

void window1()
{printf("输出有误\n");}

void window2()
{printf("退出界面\n");}

int window3()
{int m;
printf("输入数字\n");
scanf("%d",m);
return m;
}

char window4()
{char rekey;
printf("a:重新输入\nb:猜猜看\nc:查看\n d:显示界面\ne:退出\n");
scanf("%c",&rekey);
return rekey;
}

typedef struct link
{ int x;
struct link *next;
}node;

int *b;

void create(int m)
{ int i,j;
node *p,*q,*head;
b=(int *)malloc(m*sizeof(int));
head=q=(struct link *)malloc(sizeof(struct link));
for(i=0;i<m-1;i++)
{ p=(struct link *)malloc(sizeof(struct link));
q->x=i;
q->next=p;
q=p;
}
q->x=m-1;
q->next=head;
q=head;
*b=1;
p->next=q->next;
free(head);
for(i=2;i<=m;i++)
{ for(j=0;j<i;j++)
{ p=p->next;
}
q=p->next;
*(b+(q->x))=i;
p->next=q->next;
free(q);
}
}

void guess(int m)
{int i,e;
for(i=0;i<m;i++)
{ printf("第%d张牌是?",i+1);
scanf("%d",e);
if(e==*(b+i)){printf("对");}
else { printf("错");}
}
}

void search(int m)
{int i;
{ printf("你要查第%d张牌?\n");
scanf("%d",&i);
if(0<i&&i<m)
{ printf("%d\n",*(b+i-1));}
else window1();
}

void show(int m)
{int i;
for(i=0;i<m-1;i++)
{printf("%d\t",*(b+1));}
printf("\n");
}

void main()
{int m;
char key,rekey;
key=window0();//游戏界面
while(key!='y'||'n')
{ window1();//输入有误界面
key=window0();
}
if(key=='n')
{ window2();//退出界面
exit(0);
}
if(key=='y')
{ m=window3();//输入数字界面
create(m);//创建数列
rekey=window4();//功能界面
while(rekey)
{ switch(rekey)
{ case 'a': m=window3(); create(m); break;
case 'b': guess(m); break;//猜数列
case 'c': search(m); break;//查找
case 'd': show(m); break;//显示结果
case 'e': window2(); exit(0);
default : window1();
}
rekey=window4();
}
}
}

--------------------Configuration: sb - Win32 Debug--------------------
Compiling...
card.cpp
D:\pvc6\MyProjects\sb\card.cpp(90) : error C2601: 'show' : local function definitions are illegal
D:\pvc6\MyProjects\sb\card.cpp(97) : error C2601: 'main' : local function definitions are illegal
D:\pvc6\MyProjects\sb\card.cpp(125) : fatal error C1004: unexpected end of file found
Error executing cl.exe.

void search(int m)
{int i;
{ printf("你要查第%d张牌?\n");
scanf("%d",&i);
if(0<i&&i<m)
{ printf("%d\n",*(b+i-1));}
else window1();
}
}//-----------注意这少了个大括号-------------