博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C实现约瑟夫环
阅读量:4950 次
发布时间:2019-06-11

本文共 1568 字,大约阅读时间需要 5 分钟。

#include "stdio.h"
#include "alloc.h"
#include "stdlib.h"
typedef struct student
{int num;
 int m;
 struct student *next;
}node,*link;
#define LEN sizeof(node)
link readdate(int *n)
{link head,p1,p2;
  int i;
 randomize();
  p2=NULL;
 printf("/ninput the number of n:");
 scanf("%d",n);
 head=NULL;
 for(i=1;i<=*n;i++)
 {
    p1=(link)malloc(LEN);
   if(i==1) head=p1;
   else p2->next=p1;
    p2=p1;
    p1->num=i;p1->m=random(5)+1;
 }
 free(p1);
 p2->next=head;
 return (head);
}
link inputdate(int *n)
{
  link p1,p2,head;
  int i;
  p2=NULL;
  printf("/ninput the number of n:");
  scanf("%d",n);
  for(i=1;i<=*n;i++)
  {
    p1=(link)malloc(LEN);
     if(i==1) head=p1;
     else p2->next=p1;
     p2=p1;
    p1->num=i;
    printf("/ninput the M of NO%d:",i);
    scanf("%d",&p1->m);
  }
 
   p2->next=head;
  return (head);
}    
void joseph(link l,int n)
{
  int i,j,m;
  link p1,p2,k;
  p1=k=l;m=6;
  for(i=0;i<n;i++)
     {
       for(j=1;j<m;j++)
            {    
               p2=p1;
               p1=p1->next;
            }
       printf("   %d    ",p1->num);
       m=p1->m;
       p2->next=p1->next;
       k=p1;
       free(p1);
       p1=k->next;
     
     }
      return ;
}
   
void print(link head,int n)
{link p;
 printf("/nNow, These %d records are:/n", n);
 p=head;
 if(p==NULL) return;
 do{printf("%5d  %8d/n", p->num, p->m);
    p=p->next;
   }while(p->next!=head);
   printf("%5d  %8d/n", p->num, p->m);
}
main()
{struct student *p;
 int n;
 int c;
printf("*******SELECT**********/n1.-------readdate/n2.-------inputdate/n0.-------exit");
while(1)
   {printf("/nselect the right number:");
    scanf("%d",&c);
    if(c==0) break;
    else {if(c==1)
      {p=readdate(&n);
       print(p,n);
       joseph(p,n);
      }
        if(c==2)
        { p=inputdate(&n);  
        print(p,n);
        joseph(p,n);
        } 
  } 
  }
}

转载于:https://www.cnblogs.com/carekee/articles/2569774.html

你可能感兴趣的文章
String类型转int类型方法
查看>>
关于渲染引擎设计,Scene Management的文章
查看>>
oracle 使用leading, use_nl, rownum调优
查看>>
客户数据库出现大量cache buffer chains latch
查看>>
Linux文件权限
查看>>
機械の総合病院 [MISSION LEVEL: C]
查看>>
Delphi通用的序列化代码
查看>>
Educational Codeforces Round 6 D. Professor GukiZ and Two Arrays 二分
查看>>
设计模式:职责链模式(Chain Of Responsibility)
查看>>
stm32f429i disc usb cdc vcp 虚拟串口 example project (CubeMX Hal)
查看>>
Robust PCA via Outlier Pursuit
查看>>
实战练习细节(分行/拼接字符串/字符串转int/weak和copy)
查看>>
wddm 部署问题解决
查看>>
Strict Standards: Only variables should be passed by reference
查看>>
Slab-based Intersection
查看>>
将输入流转为字符串工具类
查看>>
hiho_offer收割18_题解报告_差第四题
查看>>
高斯消元
查看>>
AngularJs表单验证
查看>>
regasm.exe 注册dll
查看>>