解题思路:利用链表,并在链表内部申明一个整型来简化过程

注意事项:

!!!!!!!!!!!!释放空间的代码位置要适宜!!!!!!!!!!!!

参考代码:

typedef struct who
{
	int n;                               //对应相应的号数
	struct who* next;                         //在结构体内部定义一个结构体指针,以便于指向下一个结构体
}*who0, who1;


#include #include #include int main()
{
	who0 head = (who0)malloc(sizeof(who1)),p = NULL,q = NULL;   //定义头指针,空间的申请
	head->n = 1;                              //得到相应的号数
	p = head;
	int N, i = 1 ;
	scanf("%d", &N);
	while (i < N )                          //循环来使节点与标号相对应
	{
		q = (who0)malloc(sizeof(who1));
		q->n = i + 1;
		p->next = q;
		q->next = NULL;
		p = q;
		i++;
	}
	q->next = head;
	p = head;
	while (1)                              //巧用1,在适当的位置才停止
	{
		for (i = 1; i < 3; i++)
		{
			q = p;
			p = p->next;
		}
		q->next = p->next;

		if (p->n == p->next->n)                    //停止的条件
		{
			break;
		}
		free(p);                            //释放不要的空间
		p = q->next;
	}
	printf("%d\n", p->n);
	free(p);                                //打印出相应的位置号数后释放空间
}


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论