📄 final.txt
字号:
#include <stdio.h>
#include <stdlib.h>
typedef struct member //定义结构体包含人数,密码等
{
int code;
int num;
struct member *next;
} Member,*LINK;
#define MAX 4
int main()
{
int n,m;
LINK p,head,p2;
int i,c;
printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf(" ☆ ☆\n");
printf(" ☆ 欢迎使用排序系统 ☆\n");
printf(" ☆ ☆\n");
printf(" ☆ 1.功能:对5~30个的单位进行排序 ☆\n");
printf(" ☆ 2.说明:密码可手动输入和随机产生 ☆\n");
printf(" ☆ ☆\n");
printf(" ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n\n\n");
printf(" 【请设置人数(5~30)】:");
scanf("%d",&n); //由键盘输入要进行排序的人数及报数上限等
while(n<5||n>30) //判断输入的人数是否符合5~30的要求
{
printf(" 【输入错误,请重新输入】:");
scanf("%d",&n);
}
printf(" 【请输入初始报数上限】:");
scanf("%d",&m);
head=p=p2=(LINK)malloc(sizeof(Member));//申请空间
for(i=1;i<n;i++)
{
p=(LINK)malloc(sizeof(Member));
p2->next=p;
p2=p;
}
p2->next=head;
p=head;
int j;
printf(" ※请选择密码输入类型:【0:手动输入。1:随机产生】 ");
scanf("%d",&j);
switch(j)
{
case 0:
printf(" 【对人进行编号并手动设置密码!】\n\n");
for(i=1;i<=n;i++)
{
printf(" 【对第%d人设置密码】:",i);
scanf("%d",&c); //用户由键盘输入每个人的密码
while(c<1)
{
printf(" 【输入错误,请重新输入】:");
scanf("%d",&c);
}
p->num=i;
p->code=c;
printf(" 〖第%d个人的密码〗:%d\n",p->num,p->code);
p=p->next;
}
break;
case 1:
printf(" 【对人进行编号并随机产生密码!】\n\n");
for(i=1;i<=n;i++)
{
c=rand()%MAX+1;
p->num=i;
p->code=c;
printf(" 〖第%d个人的密码〗:%d\n",p->num,p->code);
p=p->next;
} break;
}
i=0;
p=head;
while(1)
{
i++;
if(p->next==p)
break;
printf(" 【第%d个人报】:%d\n",p->num,i);
if(i==m)
{
i=0;
printf(" 〖第%d个人出列〗\n",p->num);
m=p->code; //将出列人的密码值赋给m,作为下一个人的报数上限
printf("\n");
p2->next=p->next;
p=p2->next;
}
else
{
if(i==m-1) p2=p;
p=p->next;
}
}
printf(" 〖第%d个人最后出列〗\n\n",p->num);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -