本文目錄一覽:
猴子選大王,C語言描述 請相信解釋我的代碼!
給你原文做了注釋。還不懂hi我
#include stdio.h
#includemalloc.h
typedef struct LNode
{
int num;
struct LNode *next;
}LNode, *LinkList; //定義結點
LinkList InitList(LinkList L,int n) //初始化循環鏈表
{
LinkList p,q;
int i;
L = (LinkList)malloc(sizeof(LNode)); //頭結點
L-num = 1; //一號猴子
q=L;
for(i = 2; i = n; i++) //從二號猴子開始生成結點
{
p = (LinkList)malloc(sizeof(LNode));
p-num = i;
q-next=p;
q=p;
}
q-next = L; //使鏈表循環起來
return L;
}
void ListDelete_L(LinkList L,int n)
{
LinkList p,q;
int j=1; //j為計數器
p=L;
while(p-next!=p) //p-next=p時是只剩一個結點。
{
while(j!=n-1) //當j=n-1時應該將該結點的下一個結點刪除。當就j!=n-1時就應該指針向後移,同時計數器加一
{
p=p-next;
j++;
}
q=p-next; //q即為被點到的猴子
p-next=p-next-next; //刪除q結點
printf(“%d\n”,q-num);
free(q);//釋放
j=0; //計數器清零,重新開始計數
}
printf(“%d”,p-num);//此時的結點就是大王
free(p);
}
int main()
{
LinkList L=NULL;
int n,m,e=0;
printf(“請輸入猴子個數:”);
scanf(“%d”,m);
printf(“請輸入n值:”);
scanf(“%d”,n);
if(mn){printf(“m應該 大於n請重新輸入”);return 0 ;
}
L=InitList(L,m);
printf(“出列的順序為:”);
ListDelete_L( L,n);
return 0;
}
C語言程序設計,猴子選大王
#includestdio.h
#includestdlib.h
main()
{ int a[50];
int i,j,M,N,t=0;
printf(“input two number.\n”);
scanf(“%d %d”,N,M);
for(i=0;iN;i++)
a[i]=i+1;
for(j=1,i=0;;j++,i++)
{
if(i==N)i=0;
if(a[i]==0){j–;continue;}
if(j%M==0){a[i]=0;t++;}
if(N-t==1)break;
}
for(i=0;iN;i++)
if(a[i]!=0) printf(“猴王是第%d個.\n”,a[i]);
system(“pause”);
}
試試…
求高手幫忙調試一下「猴子選大王C語言代碼」誠謝!本人新手學C語言
#include stdio.h
#define SHUMU 10
void main()
{
int i=0, weizhi=0,shumu=10;
int houzi[SHUMU]={1,1,1,1,1,1,1,1,1,1};
while(shumu1)
{
i=1;
while(i6)
{ weizhi++;
if(weizhi9) weizhi=weizhi-10;
if(houzi[weizhi]=1) i++;
}
houzi[weizhi]=0;
shumu–;
}
i=0;
while(i10)
{
printf(“第%d只猴子是大王\n”, i);
i++;
}
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/237105.html