题目:有n个人围成一圈,顺序从零排号。从第一个人开始报数(从1到3报数),凡报到3的人 退出圈子,问最后留下的是原来第几号的那位。

思路:通过冒泡排序调整位置,让我们不需要的数调到后面,需要的数往前挪,原理很简单,代码段在后面,如果觉得还有修改的地方可以评论下,如果要用我的代码,不免给个赞呗!谢谢!!!

详细思路:

1.创建一个存储一个整数的变量和一个分开位数的数组

2.把存入的整数分位存入数组

3.开始判断,先叫到3(计算count)的数通过冒泡排序直接交换到最后,循环长度(len)减一个,第一个完成叫3判断的数就会保留在数组的最后,不会再去动它

4.到最后判断最后的2位谁先叫3,如果是第0位叫就保持现状,如果是第1位叫就交换;

#include<stdio.h>
#include<string.h>void Digital_points(int *p,int *plen);//把各位数装入数组
void Estimate (int *pnum,int *plen);//判断
void Bubble(int *p,int i,int len);//冒泡排序
void swp(int *p1,int *p2);//交换位置
void prin(int *p,int *parr); //输出int main(void)
{int len;//输入的人数int *plen = &len;int a[100];//容器aint *pa = a;printf("请输入人数:");scanf("%d",plen);Digital_points(pa,plen);//装容器Estimate(pa,plen);prin(pa,plen);printf("最后一个人是%d",*pa);return 0;
}void Estimate (int *p,int *plen)//判断
{//报数1-3,到3归1,循环只剩最后一人int end = *plen,i;int count = 1;while(end != 1){for(int i = 0;i < end;i++){if(count == 3){prin(p,plen);count = 1;if((end == 1)&&(i == 0)) break;else {Bubble(p,i,end);end--;}}if(i == end) break;count++;}}
}void Digital_points(int *p,int *plen)//把各位数装入数组
{for(int i = 0;i < *plen;i++){*(p+i) = i;}
}void prin(int *p,int *parr) //输出
{for(int i = 0;i < *parr;i++){printf("%-4d ",*(p+i));}printf("\r\n");
}void Bubble(int *p,int i,int len)//冒泡排序
{for(;i < len-1;i++){swp(p+i,p+i+1);}
}void swp(int *p1,int *p2) //交换位置
{int temp = *p1;*p1 = *p2;*p2 = temp;
}

C语言_报数问题:有n个人围成一圈,顺序从零排号。从第一个人开始报数(从1到3报数),凡报到3的人 退出圈子,问最后留下的是原来第几号的那位。相关推荐

  1. 详细讲解C语言经典例题:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位

    有n个人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位 如题,相信很多人都和我一样,当时看到根本不知道从何下手.那么我们先不看代码,画图 ...

  2. c/c++ 有n个人围成一圈, 顺序排号。从第1个人开始报数(从1~3报数), 凡报到3的人退出圈子, 问最后留下的人原来排在第几号。

    解题思路的重要性显现出来了 比如这个题 n个人肯定是要用数组 毋庸置疑 那么报数怎么实现呢 可以设置一个循环变量 让他从0开始循环 当等于3 的时候 就归零 还有 n个人 肯定需要很多圈报数 这个很多 ...

  3. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成

    题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成 #include <stdio.h> in ...

  4. ACMNO.38 C语言-报数 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

    题目描述 有n人围成一圈,顺序排号. 从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.`在这里插入代码片` 问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样 ...

  5. python n个人围成一圈,Python练习代码实例69-有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的...

    Python 练习实例69 题目:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位. 程序分析:无. 程序源代码:#!/usr/bi ...

  6. (C语言)有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

    题目描述 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样例输入 3 样例输出 2 ...

  7. 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。...

    首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们! 然后今天群里突然有人提出了题目的这个问题: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人 ...

  8. 习题 6.5 有n个人围成一圈,顺序排号。从第1个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。

    C++程序设计(第三版) 谭浩强 习题6.5 个人设计 习题 6.5 有n个人围成一圈,顺序排号.从第1个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. 代码块: # ...

  9. 题目: 有 n个人围成一圈,顺序排号。从第一个人开始报数(从 1到 3报数),凡报到 3的 人退出圈子,问最后留下的是原来第几号的那位。(模拟)

    题目: 有 n个人围成一圈,顺序排号.从第一个人开始报数(从 1到 3报数),凡报到 3的 人退出圈子,问最后留下的是原来第几号的那位. 思路: 题目说是排成一圈,可以看成一个数组的排列.用i从下标为 ...

  10. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(*)

    有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位. #include <stdio.h> int main() {in ...

最新文章

  1. miui12 android版本,miui12基于安卓几版本开发的?miui12是安卓11吗
  2. 跟着 Event loop 规范理解浏览器中的异步机制
  3. 使用nginx在Windows部署网站https服务
  4. 微型计算机硬件采用什么,微型计算机的硬件系统包括什么?
  5. 基于特征的对抗迁移学习论文_[论文笔记] 对抗样本不是bugs,而是特征
  6. 【环境搭建002】ubuntu 13 在vm 下的 NFS 搭建
  7. JS 获取 URL 地址/参数
  8. 利用360卫士打补丁
  9. 2022最新最全升级版【精品工具】用Appuploader发布上传iOS APP上架流程简单快速
  10. 数字图像处理 matlab 傅里叶变换及逆变换 余弦变换及逆变换(使用代码库)
  11. php禁止贪婪,php正则表达式中贪婪与非贪婪介绍
  12. C++Qt入门(1)---Qt简介,第一个Qt程序,Qt按钮
  13. activiti6.0(二)节点处理人
  14. STI、LOD与WPE概念:形成机理及对电路设计的影响
  15. Exchange 2019数据库切换
  16. Kubernetes安装dashboard
  17. [导入]山寨也疯狂:前卫手表造型 Cool G108 Watch手机亮相
  18. 日期类的实现(C++)
  19. Template-Web
  20. pap认证失败_PAP 认证

热门文章

  1. 190425每日一句
  2. 传智播客扫地僧C/C++学习笔记冒泡排序
  3. atitit 面试问题表 侧重于项目和业务描述方面.v2 良好的标准:: 1.回答问题比较流畅,较少出现停顿现象,较少犹豫 2.回答有条理清晰 不杂乱 3.回答较为丰富内容 4.精神状态紧张
  4. Atitit 集成之道 attilax著 1. 所谓系统集成(SI,System Integration), 1 2. 发展方向 1 2.1. 产品技术服务型 2 2.2. 系统咨询型 2 2.3.
  5. Atitit. Toast alert loading js控件   atiToast v2新特性
  6. Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.
  7. 输入法分类总结与优缺点
  8. paip.提升用户检验-----列表摘要
  9. 无公式无数学内容下,如何理解加密与解密知识?
  10. (转)这张照片告诉了你蚂蚁金服成功的秘密...