作业帮 > 综合 > 作业

C语言程序算法问题,如题:有100个人,顺时针围成一个圆环,编号从1到100,然后顺时针报数,从1号开始,当报数为13时

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/22 07:12:44
C语言程序算法问题,
如题:有100个人,顺时针围成一个圆环,编号从1到100,然后顺时针报数,从1号开始,当报数为13时,这个人自动退出队伍,然后下一个又从1开始报数,到13后这个人自动退出队伍,一次循环,知道队伍中没有人为止,问退出队伍的人的编号,俺的算法只能得出13,26,39,52,65,78,91.请高手给出正确的代码及思想,
首先产生一个疑问,怎么最后会一个也不剩啊,应该最后剩的是1到12号的人吧.这是我编的,
自己检验了 输出结果是对的,你先看一下代码吧,如果不对,请提出来.若证明是对的但看不懂请先多思考一下,思路并不复杂.
#include
int main()
{
int a[101],i,j,m,n;
for(i=1;i
再问: 是围成一个圈,依次报数,例如:第91号出对后,92号又从1开始报数,下一个出对的应该是3号。而不是从1号人员重新开始报数。
再答: 我重新做了一下 答案应该是对的 #include #include #define size sizeof(struct student) struct student{ int num; struct student *next; }; struct student *creat(){ struct student *head,*p1,*tail; int num; p1=(struct student *)malloc(size); head=tail=p1; for(num=1;numnum=num; p1->next=NULL; p1=(struct student *)malloc(size); tail->next=p1; if(num!=100)tail=p1; } tail->next=head; return head; } void del(struct student *head){ struct student *ptr1,*ptr2; int n,i; ptr1=head; for(i=0;inext; ptr1->next=ptr2->next; ptr1=ptr1->next; printf("%d ",ptr2->num); free(ptr2); } } int main(){ struct student *head; head=creat(); del(head); }
再问: 我勒个去,有这么麻烦么?不过还是谢了,用指针是最容易实现的,但是我的指针部分实在不敢说,所以说用数组。
再答: 这个其实不是很复杂 ,数据结构中的,算法简单,可能看上去难,这个应该是对的吧,你验证了吗
C语言程序算法问题,如题:有100个人,顺时针围成一个圆环,编号从1到100,然后顺时针报数,从1号开始,当报数为13时 C语言:有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子 C语言 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子 c语言:有n个人围成一圈,按顺序编号.从第1个人开始报数,数到m时该人退出,并且下一个从1重新开始报数. 200个学生依次编上1~200号后顺时针围成一个圆圈,然后从1号学生开始1,2,1,2,.顺时针报数, 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数, 用C语言编写:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,请输出报数出列圈及最 有N个人围成一个圈顺序编号,从第一个人开始报数(从1到M),凡报到M的人退出圈子, C语言循环链表的题,有N个同学,编号分别为1,2,3……,N,围成一圈,随便选定一个整数m,让大家按顺时针依次报数,报到 求做一个C语言题目约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈 C语言:有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 约瑟夫问题:M个人围成一圈,从第一个人开始依次从1到N循环报数,每当报数为N时此人出圈,直到剩一人为止