程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> JOSEPH環

JOSEPH環

編輯:C語言基礎知識

  #include<stdio.h>
  typedef strUCt Node
  {
   int number;
   int cipher;
   struct Node *next;
  }node,*hu;
  hu H;//定義頭結點為H;
  init(int n)
  {
    int i;
    int cipher;
    hu L;
    if(n>=1)
    {
      scanf("%d",&cipher);
      H=(hu)malloc(sizeof(node));//生成頭結點;
      H->number=1;
      H->cipher=cipher;
      H->next=H;
      for(i=1;i<n;i++)
      {
        scanf("%d",&cipher);
        L=(hu)malloc(sizeof(node));//生成副結點;
        L->number=i+1;
        L->cipher=cipher;
        L->next=H->next;
        H->next=L;
        H=L;
      }
      H=H->next;//循環單鏈表的生成;
    }
    else
      printf("The N's value that you inputted is invalid!");
  }
  Joseph(int m,hu h)//進行程序的循環,使順序出列;
  {
    int i;
    hu l;
    l==h;
    i=1;
    while(i!=m)
    {
      i=i+1;
      l=h;
      h=h->next;
    }
    printf("%3d",h->number);
    m=h->cipher;
    l->next=h->next;
    free(h);
    h=l->next;
    if(h!=l)
      Joseph(m,h);
    else
    {
      printf("%3d",h->number);
      free(h);
    }
  }
  main()
  {
   int m;
   int n;
   int i;
   clrscr();
   printf("Please input the starting value of M ( the upper limit worth of M ) : ");
   scanf("%d",&m);
   printf("Please input the man's figure who have a hand in: ");
   scanf("%d",&n);
   printf("Please input the cipher from number1 to number%d:",n);
   init(n);
   printf("The order of Dequeue is :");
   Joseph(m,H);
  }
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved