C语言的一道题
(2)13个人围成一圈,从第一个人开始顺序报号1,2,3.凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。要求用链表实现。#include<stdio.h>#d...
(2) 13个人围成一圈,从第一个人开始顺序报号1,2,3.凡报到“3”者退出圈子,找出最后留在圈子中的人原来的序号。要求用链表实现。
#include <stdio.h>
#define N 13
struct person
{int number;
int n;
}link[N+1];
int main ()
{
int i,count,h;
for(i=1;i<=N;i++)
{if(i==N)
link[i].n=i+1;
link[i].number=i;
}
printf("\n");
count=0;
h=N;
printf("sequence that person leave the cirrcle:\n");
while(count<N-1)
{i=0;
while(i!=3)
{h=link(h).n;
if(link[h].number)
i++;
}
printf("%4d",link[h].number);
link[h].number=0;
count++;
}
printf("\nThe last one is");
for(i=1;i<=N;i++)
if(link[i].number)
printf("%3d",link[i].number);
printf("\n");
return 0;
} 展开
#include <stdio.h>
#define N 13
struct person
{int number;
int n;
}link[N+1];
int main ()
{
int i,count,h;
for(i=1;i<=N;i++)
{if(i==N)
link[i].n=i+1;
link[i].number=i;
}
printf("\n");
count=0;
h=N;
printf("sequence that person leave the cirrcle:\n");
while(count<N-1)
{i=0;
while(i!=3)
{h=link(h).n;
if(link[h].number)
i++;
}
printf("%4d",link[h].number);
link[h].number=0;
count++;
}
printf("\nThe last one is");
for(i=1;i<=N;i++)
if(link[i].number)
printf("%3d",link[i].number);
printf("\n");
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询