C语言-报数出圈问题(链表实现)

article/2025/10/23 5:05:01
问题描述:n个人围成一圈,顺序编号。从第一个人开始从1到m报数,凡报到m的人退出圈子,编程求解最后留下的人的初始编号。
程序运行示例:
6 3(两个输入数据之间有空格)
1输入格式:scanf("%d%d",&n,&m);
输出格式:printf("%d\n",p->data);

解决方法:该问题用单链表的方法建立链表存储人数和序号,通过连接首尾达到循环的效果,删除n-1个元素只留一个元素后输出剩余的唯一一个元素,即最后一个元素。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>typedef struct Node{int data;struct Node* next;
}S;S* head_create(){S* head = (S*)malloc(sizeof(S));if(head==NULL) exit(1);head->next=NULL;return head;
}S* Node_insert(S* head,int i,int x){//插入数据 S *p;p=head;int m=0;while(m<i-1){p=p->next;m++;}S* q = (S*)malloc(sizeof(S));q->next=p->next;p->next=q;q->data=x;
}
S* xunhuan(S* head){//将链表的第一个元素与最后一个元素连接 S *p;p=head;while(p->next){p=p->next;} p->next = head->next;
} 
S* Node_delete(S* head,int i){//每次删除后返回删除元素前一个元素 S *p,*s;p=head;int m=0;while(m<i-1){p=p->next;m++;}s=p->next;p->next = s->next;free(s);return p;
}void print_SL(S *head,int i)//打印出链表中唯一元素,i>1时会重复输出链表中剩余元素 
{S *p;p=head;if(p==NULL) printf("单链表空!\n");else{p=p->next;}int m=0;while(m<i){printf("%d",p->data);p=p->next;m++;}
}main(){int m,n,i;S *s1=head_create();//输入mn scanf("%d%d",&m,&n);for(i=1;i<=m;i++){Node_insert(s1,i,i);} xunhuan(s1);for(i=1;i<m;i++){s1=Node_delete(s1,n);}print_SL(s1,1);return 0;
}

运行结果:

 


http://chatgpt.dhexx.cn/article/jmnF5PkR.shtml

相关文章

蓝桥杯 小朋友崇拜圈 C语言

标题&#xff1a;小朋友崇拜圈 班里N个小朋友&#xff0c;每个人都有自己最崇拜的一个小朋友&#xff08;也可以是自己&#xff09;。 在一个游戏中&#xff0c;需要小朋友坐一个圈&#xff0c; 每个小朋友都有自己最崇拜的小朋友在他的右手边。 求满足条件的圈最大多少人&…

java 圈复杂度_详解圈复杂度

详解圈复杂度 圈复杂度概念 圈复杂度(Cyclomatic complexity,简写CC)也称为条件复杂度,是一种代码复杂度的衡量标准。由托马斯J麦凯布(Thomas J. McCabe, Sr.)于1976年提出,用来表示程序的复杂度,其符号为VG或是M。它可以用来衡量一个模块判定结构的复杂程度,数量上表现为…

控制台图形化打印二叉树(c/c++)

二叉树作为一种常见的数据结构,我们在学习的过程中会经常用到. 当我们做课设的时候,能把二叉树图形化的打印出来无疑是一个加分项,所以今天我们就来探讨一下如何图形化的打印出二叉树来. 目录 分析阶段 如何打印 如何将数据存入打印数组 代码实现 存储结构定义 二叉树的…

C语言:围圈报数游戏

游戏规则&#xff1a;有N个人围成一圈&#xff0c;顺序排号&#xff0c;从第一个人开始1到D报数&#xff0c;&#xff0c;凡报到D的人退出圈子&#xff08;下场&#xff09;&#xff0c;问最后留下来的是原来的第几号&#xff1f; 逻辑思想&#xff1a;用布尔数组记下每个人的…

c语言 打印共九行的菱形,用C语言打印图案的几种实现方法

循环的使用 维普资讯 http://doc.xuehai.net 科技伯. 1 1 0计算机与信息技术 0 S IN E I F R TO CE C N O MA I N 20 06年第 4期 用 C语言打印图案的几种实现方法 陈莹张青锋 (口师范学院计科系河南周口周 46 0 ) 60 0 摘要&#xff1a;经过几年来在 c语言教学中的实践&#xf…

C语言实现打印简易圣诞树

C语言实现打印简易圣诞树 引言想法的诞生一棵简易的圣诞树怎么构成梯形的代码梯形的叠加做一个长方形树干 总代码及其输出的简易圣诞树 引言 各位大佬好&#xff0c;我是一名大一的学生&#xff0c;目前只学习了C语言的语法基础&#xff0c;在CSDN这个平台上将自己所学的东西记…

HTML圈c怎么打出来,一种方便固定手表的展示C圈的制作方法

本实用新型属于展示C圈技术领域&#xff0c;具体涉及一种方便固定手表的展示C圈。 背景技术&#xff1a; 展示C圈是用来展示手表的必备器材&#xff0c;展示C圈采用耐用透明展示底座&#xff0c;方便工作人员为顾客展示手表的折光度。 原有展示C圈&#xff0c;手表固定在C圈上时…

c语言圈复杂度switch,干货|C语言switch\/case圈复杂度优化重构

点击上方“中兴开发者社区”&#xff0c;关注我们 每天读一篇一线开发者原创好文 ▍作者简介 作者陈彬是一名Linux驱动开发工程师&#xff0c;对Linux内核、软件设计和敏捷有较浓厚的兴趣和长期实践经验。自从项目建立起代码质量规范和监控工具后&#xff0c;如何重构高圈复杂度…

c语言圈复杂度switch,C语言switch/case圈复杂度优化重构

软件重构是改善代码可读性、可扩展性、可维护性等目的的常见技术手段。圈复杂度作为一项软件质量度量指标,能从一定程度上反映这些内部质量需求(当然并不是全部),所以圈复杂度往往被很多项目采用作为软件质量的度量指标之一。 C语言开发的项目中,switch/case代码块是一个很容…

Excel2016打开文件后显示空白

打开文件时显示 打开后空白 解决办法:

Excel双击文件打开后是空白,再次双击才能打开

Excel双击打开文件只弹出空白页面&#xff0c;再双击才打开所需页面。 解决方案&#xff08;仅供参考&#xff09;&#xff1a;WINR -->regedit-->修改HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command项->默认值 数值数据原值后面加上 “%1” 点击确定即可 如&…

【Windows】Excel2019打开文档显示空白且工具栏灰色无法点击

如标题&#xff0c;要想打开Excel文档&#xff0c;只能通过菜单栏操作&#xff1a;文件->打开&#xff0c;然后选择要打开的文档才能正常显示。遇到这个问题很久了&#xff0c;今天着实忍不住了&#xff0c;特记录一下解决方法。 1、查看是否隐藏 点击“视图”菜单&#x…

Excel 2016打开后显示灰色空白页解决方法

重新装了系统&#xff0c;安装上Excel2016&#xff0c;发现打开xls文件只显示一个灰色的开始页面 再次打开excel文件才显示内容&#xff0c;一直这样岂不是太繁琐&#xff1f; 找到了一个教程&#xff0c;在Excel启动选项设置一下。文件-选项-常规-启动选项&#xff0c;将应用…

解决Excel打开后灰色没有内容的问题

问题现象 双击打开的Excel文件&#xff0c;扩展名包括xls、xlsx、csv&#xff0c;如下图&#xff1a; 解决方案 1、打开注册表 快捷键Win R&#xff0c;输入regedit&#xff1a; 2、修改注册表 计算机\HKEY_CLASSES_ROOT\Excel.csv\shell\Open\command计算机\HKEY_CLA…

excel打开空白不显示内容

打开excel文档不显示文件内容&#xff0c;一片灰色 找到此文件&#xff1a;HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\Open\command 修改 “默认” 值 修改前&#xff1a;“C:\Program Files\Microsoft Office\Root\Office16\EXCEL.EXE” /dde 修改后&#xff1a;“C:\Program F…

excel2007打开灰色空白

选项-高级 把dde项勾选掉即可&#xff0c;重启excel 转载于:https://www.cnblogs.com/gsl371-blog/p/7006957.html

excel白屏未响应_「excel打开空白」Excel 2016 打开后空白的解决方法 - seo实验室

excel打开空白 最近使用excel 2016时遇到一个这样的状况,就是双击打开一个有内容的xlsx表格后显示空白,用管理员身份打开也是一样,这里总结一下解决方法: 说明:Office 2016在安装时会默认安装在系统盘,都不给修改安装位置的机会,我的安装位置是做了修改的(修改Office 20…

Excel - 插入空白行

简单的插入一个空白行&#xff0c;只需选中一行&#xff0c;右键&#xff0c;选择插入一行即可。 如果要一次插入多个空行&#xff0c;可以按住Ctrl键&#xff0c;然后逐个选中想要插入的行&#xff0c;然后执行插入操作&#xff0c;如下所示&#xff1a; 选中张三、王五、田七…

html文件桌面图标空白,excel桌面图标空白但是能打开

本文的教程为大家分享了两种excel文件不显示图标的情况&#xff0c;以及他们对应的不显示图标的解决方法和设置. Excel文件不显示图标的第一种方式&#xff1a;图标未知 如下面的截图&#xff0c;一个Excel文档&#xff0c;在桌面上预览&#xff0c;可以看到excel文件不显示图标…

如何解决每次打开Excel2016文件都是灰色空白页,要把文件拖进去才能显示

1、打开注册表&#xff1a;开始->运行&#xff0c;输入“regedit”后&#xff0c;回车。 2、"HKEY_CLASSES_ROOT"。 3、展开root后进入找到如图所示的 sheet8->open-command;找到默认值。 4、鼠标 右键 默认值 选择更改 会出现如图所示的对话框。 5、修改这个值…