⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 final.txt

📁 排序
💻 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 + -