原题链接:[编程入门]链表之报数问题
解题思路:
注意事项:
参考代码:
#include<stdio.h> typedef struct Link{ int data; struct Link *next; }Link; //循环链表的函数声明 Link *creatlist(int len); //获得原始编号函数的声明 void Getnum(Link *node,int len); int main() { int n; scanf("%d",&n); Link *p; p=creatlist(n); Getnum(p,n); return 0; } Link *creatlist(int len){ Link *head,*p,*q; int i; head = (Link *)malloc(sizeof(Link));//创建头结点 head->next=NULL; q=head; for(i=0;i<len;i++){ p=(Link *)malloc(sizeof(Link)); p->data=1; q->next=p; q=p; } q->next=head->next;//建立循环 return head; } void Getnum(Link *node,int len){ Link *p; int i,time=0,zero_count=0; p=node->next; while(zero_count!=len-1){ zero_count=0; for(i=0;i<len;i++){ if(p->data==1){ time++; if(time==3){ p->data=0; time=0; } } else{ zero_count++; } p=p->next; } } for(i=0;i<len;i++){ if(p->data)printf("%d",i+1); p=p->next; } }
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复