回复 8楼 yangfanconan
这位朋友,最近由于忙别的事,刚看到你的帖,很谢谢你,你的建议让我豁然开朗!太给力了!
但是我现在有新的问题了,我用ege做好了菜单,但我想从图形窗口再跳到文本编辑窗口,它却跳不过去,这让我意识到我只是编出了不能进行任何操作的图片而已,请问怎么解救这个问题,我用过TC下的关闭图像窗口的函数,还是没有用!
![](zzz/editor/img/code.gif)
程序代码:
#include "graphics.h"
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
typedef struct node
{ int number;
int code;
struct node*next;
}node,*linklist;
void creat(linklist&head,int n) //建立循环链表
{
struct node*p,*q;
int i;
q=head=(linklist)malloc(sizeof(node));
head->next=NULL;
for(i=1;i<=n;i++)
{
p=(linklist)malloc(sizeof(node));
p->number=i;
p->code=1+(int)(n*rand()/(RAND_MAX+1.0));
printf(" 第%d个人的密码是:%d\n\n",i,p->code);
p->next=q->next;
q->next=p;
q=p;
}
p->next=head->next;
head=head->next;
}
void out (linklist&head,int n,int m,int S[]) //出环函数
{
struct node*p,*q,*b;
int k,j=0;
while(j<n)
{
int i=1;
b=p=head;
printf(" 此时约瑟夫环形状如下,假设首尾相连:\n\n");
printf(" ****");
for(k=1;k<=n-j;k++)
{
printf("【%d】*****",b->number);
b=b->next;
}
Sleep(4000);
system("cls");
while(i!=m)
{ q=p;
p=p->next;
i++;
}
q->next=p->next;
j++;
printf("\n\n 第 %d 个出环的人的编号是: (%d)\n\n",j,p->number);
S[j-1]=p->number;
m=p->code;
free(p);
head=q->next;
}
printf("\n 此时所有人都已经出环!!!\n");
}
void menum()
{
int driver = DETECT, mode = 0;
initgraph(&driver, &mode, "约瑟夫环系统");
setbkcolor(BLUE);
bar(15,20,620,450);
setcolor(RED);
settextstyle(3,0,5);
outtextxy(210, 50, "welcome you");
setcolor(GREEN);
settextstyle(1,0,4);
outtextxy(230, 140, "约瑟夫环系统");
setcolor(BLACK);
settextstyle(4,0,3);
outtextxy(100, 250, "进入系统请按1");
outtextxy(430, 250, "退出系统请按0");
getch();
getchar();
closegraph();
}
void main()
{
menum();
struct node*head;
int sum,Code,x,i;
scanf("%d",&x);
while(x==1)
{
printf("\n\n 请输入人数和初始密码,用逗号隔开 \n\n");
scanf("%d,%d",&sum,&Code);
int a[100];
creat(head,sum);
Sleep(4000);
system("cls");
printf("\n\n\n\n");
out(head,sum,Code,a);
Sleep(3000);
system("cls");
printf("\n\n\n\n 通过演示可知,约瑟夫环出环的人的编码依次是:\n\n ");
for(i=0;i<sum;i++)
{
printf("%d ",a[i]);
}
printf("\n\n\n 是否继续运行,是(1)否(0) \n\n");
scanf("%d",&x);
}
system("cls");
printf("\n\n\n\n\n\n 感谢使用!再见!");
Sleep(3000);
system("cls");
exit(0);
}