以下是用vc++实现猴子选大王程序。求输出界面优化指导。
#include<stdio.h>int length;
typedef struct monkey{
int data;
struct monkey *next;
}monkey,*linklist;
linklist Y;
linklist creat (linklist L)
{
int i;
linklist p,r;
L=(linklist)malloc(sizeof(monkey));
L->data=1;
L->next=L;
r=L;
for(i=2;i<=length;i++)
{
p=(linklist)malloc(sizeof(monkey));
p->data=i;
p->next=L;
r->next=p;
r=p;
}
return L;
}
linklist choose (linklist L,int n)
{
int i;
linklist p,q;
p=Y;
if(n==2)
{
q=p->next;
p->next=q->next;
free(q);
length--;
}
else
{
for(i=2;i<n;i++)
{
p=p->next;
}
q=p->next;
p->next=q->next;
free(q);
length--;
}
if(length==1)
{
L=p;
return L;
}
else
{
Y=p->next;
choose(L,n);
}
}
void main()
{
linklist L=NULL;
int m,n,a;
printf(" 猴子选大王 \n");
printf("请输入猴子的个数 :");
scanf("%d",&m);
length=m;
L=creat(L);
printf("\n猴子报数: ");
scanf("%d",&n);
printf("\n猴子大王是: ");
if(n==1)
printf("%d",m);
else
{
Y=L;
L=choose(L,n);
a=L->data;
printf("%d\n",a);
}
}