急 是数据结构课作业1.输入n个数,每隔m个删除一个,一直到只剩一个数字,将这个数字输出 (用单向循环列表或双向)2.首先自动产生一个n位0-9数字,每位上的数字互不相同.> > 然后,程序接受
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/13 04:15:24
急 是数据结构课作业1.输入n个数,每隔m个删除一个,一直到只剩一个数字,将这个数字输出 (用单向循环列表或双向)2.首先自动产生一个n位0-9数字,每位上的数字互不相同.> > 然后,程序接受
急 是数据结构课作业
1.输入n个数,每隔m个删除一个,一直到只剩一个数字,将这个数字输出 (用单向循环列表或双向)
2.首先自动产生一个n位0-9数字,每位上的数字互不相同.
>
> 然后,程序接受玩家输入所猜测的n位不重复的数字;
>
> 接着,由程序比对符合的位数以及不符合但有出现的数字的数量.完全符合的数
> 字会以A来表示,而不符合正确位置但有出现的数字则以B来表示.举例,如果正
> 确答案是2345且玩家猜的是4395,则会得到2A1B.
>
> 最后,玩家在m次内猜测出完全相符的数字组合即为胜利.若没有在指定m回合完
> 成,则给出准确答案.
>
> 注:m,n可由玩家自定.若不设定,其缺省为n=4;m=12.
>
急 是数据结构课作业1.输入n个数,每隔m个删除一个,一直到只剩一个数字,将这个数字输出 (用单向循环列表或双向)2.首先自动产生一个n位0-9数字,每位上的数字互不相同.> > 然后,程序接受
第一题
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define ERROR 0
typedef struct name
{
char txt[81];
struct name *next;
}Listnode,*ListLink;
ListLink createlist(void)
{
char s[81];
ListLink head,last;
Listnode *p;
head=NULL;
gets(s);
if(*s)
{
p=(Listnode *)malloc(sizeof(Listnode));
strcpy(p->txt,s);
head=last=p;
last->next=head;
}
else
return ERROR;
while(*(gets(s)))
{
p=(Listnode *)malloc(sizeof(Listnode));
strcpy(p->txt,s);
last->next=p;
last=p;
}
last->next=head;
return last;
}
/*printlist(ListLink head)
{
Listnode *p;
p=head;
while(p)
{
printf("%s\n",p->txt);
p=p->next;
}
putchar(10);
}*/
void Josephus(int *n,int *m,ListLink *last)
{
int i=0,j=0;
Listnode *p,*r;
p=last;
for(i=1;inext;
}
if(m==1)
{
while(p->next!=p)
{
printf("%s \n",p->next->txt);
r=p->next;
p->next=p->next->next;
free(r);
}
printf("%s \n",p->txt);
free(p);
}
else
{
while(p->next!=p)
{
for(j=1;jnext;
}
printf("%s \n",p->next->txt);
r=p->next;
p->next=p->next->next;
free(r);
}
printf("%s \n",p->txt);
free(p);
}
}
void main()
{
ListLink last;
int n=0,m=0;
printf("\n\n");
Josephus(&n,&m,last);
/*printlist(head);*/
}