N个人围成一圈-从第一个开始报数-第k个退出-再从1开始报数-依次循环-直到最后一个人(共3页).docx
-
资源ID:13483555
资源大小:13.47KB
全文页数:3页
- 资源格式: DOCX
下载积分:20金币
快捷下载
![游客一键下载](/images/hot.gif)
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
N个人围成一圈-从第一个开始报数-第k个退出-再从1开始报数-依次循环-直到最后一个人(共3页).docx
精选优质文档-倾情为你奉上#include<stdio.h>#include<stdlib.h>#include<malloc.h>struct ringint number;struct ring *next;struct ring* creat(int n )struct ring *q,*p,*head;int i=1;q=head=NULL;while(i<=n)p=(struct ring*)malloc(sizeof(struct ring);p->number=i;if(q=NULL)head=q=p;elseq->next=p;q=p;i+;q->next=head;return head;struct ring* delete_number(struct ring *head,int k)struct ring *q,*p;q=p=head;if(head=NULL)printf("该链表中无数据元素,不能删除n");return head;while(1)q=p;p=q->next;if(p->number=k)if(p!=head)q->next=p->next;free(p);break;else if(p=head)q->next=p->next;head=p->next;break;return head;main()int n,k,i=0;int a;struct ring *head,*p,*q;while(1)printf("请输入总人数n和退出条件k的值n");printf("nn=");scanf("%d",&n);printf("nk=");scanf("%d",&k);printf("n");head=creat(n);p=q=head;while(1)q=p;p=q->next;i+;if(i%k=0&&(head->next)!=head)head=delete_number(head,q->number);if(head->next)=head)break;if(p->next=head)i=i%k;printf("最后剩下的人是%d号n",p->number);printf("是否需要继续?1(继续) or 0(退出)n请输入0或1:");scanf("%d",&a);system("cls");if(a=0)break;专心-专注-专业