📄 j.cpp
字号:
#include<stdio.h>
#include<stdlib.h>
#define NULL 0
typedef struct node
{
int data1;
int data2;
struct node * next;
}Lnode;
void Hello()
{
printf("欢迎进入joseph环\n");
}
Lnode *set(int n,Lnode *r)
{
Lnode *p,*q;
int i;
q=(Lnode *)malloc(sizeof(Lnode));
r=q;
for(i=1;i<n;i++)
{
p=(Lnode *)malloc(sizeof(Lnode));
q->data1=i;
q->data2=NULL; //初始密码为空
q->next=p;
q=p;
}
p->data1=n;
p->data2=NULL;
p->next=r;
r=p;
return r;
}
Lnode *access(int n,int m,Lnode *r)
{
int i,j,k;
Lnode *p,*q;
p=r;
for(i=1;i<n;i++)
{for(j=1;j<m;j++)
p=p->next;
q=p->next;
p->next=q->next;
printf("第%d个出列的人序号为:%d\n",i,q->data1);
printf("请输入此人隐含得密码\n");
scanf("%d",&k);
m=k;
}
printf("第%d个出列的人序号为: %d\n",n,p->next->data1);
r=p;
return r;
}
void end()
{
printf("错误的输入,程序将关闭\n");
}
void exit()
{
printf("thank you for using\n");
}
void main()
{
Lnode *r;
int n,m,c; //n为人数 m为报数上限
do{
Hello();
printf("首先请输入人数以及报数——总数:______报数上限_____\n");
scanf("%d%d",&n,&m);
if(n>0&&m>0)
{
Lnode *set(int n,Lnode *r);
r=set(n,r);
access(n,m,r);
}
else
end();
printf("1:重新进入 2:退出\n");
scanf("%d",&c);
if(c==2)
exit();
}while(c==1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -