我在编程中遇到了一些问题,希望大家能帮忙
以下是我编写的约瑟夫环的程序:main.cpp:
#include"c.h"
#include"yuesefu.h"
int mima;
void main()
{
Lnode y,s,c;
int k;
y=(Lnode)malloc(sizeof(Lnode));
int n,i,m;
printf ("请输入约瑟夫环的人数和初始上限值:\n");
scanf ("%d%d",&n,&m);
mima=m%n;
c=Listgoujian(y,n,s);
printf("编号顺序为:\n");
for (;n>0;n--)
{
for (i=1;i<mima;i++)
c=c->next;
Listdelete(c,k);
printf ("%d\n",k);
mima=k;
}
}
yuesefu.cpp:
#include"c.h"
#include"yuesefu.h"
Lnode Listgoujian(Lnode &L,int s,Lnode &tail)
{
int i;
Lnode p;
p=(Lnode)malloc(sizeof(Lnode));
L->next=p;
tail=L;
for (i=1;i<=s;i++)
{
p=(Lnode)malloc(sizeof(Lnode));
p->next=NULL;
printf ("请输入每个人密码:\n");
scanf ("%d",&p->mima);
p->bianhao=i;
tail->next=p;
tail=p;
}
tail->next=L->next;
return tail->next;
}
void Listdelete(Lnode &L,int &s)
{
Lnode p=L->next;
s=L->bianhao;
L->next=p->next;
}
c.h:
#include <string.h>
#include <ctype.h>
#include <malloc.h>
#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#include <io.h>
#include <math.h>
#include <process.h>
yuesefu.h:
#include <conio.h>#include"c.h"
#define OK 1
typedef struct yue
{
int bianhao;
int mima;
struct yue *next;
}*Lnode;
Lnode Listgoujian(Lnode &L,int n,Lnode &tail);
void Listdelete(Lnode &L,int &s);
运行的结果老是不对,怎么回事?