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

#include <stdio.h>
int main()
{int n;printf("输入人数:\n");scanf("%d",&n);int a[1000];int i,temp;int count = 0;temp = n; for(i = 0;i < n;i++){a[i] = i+1;   }i=0;   //重点  i重新赋值0从0开始while (n>1){if(a[i] != 0)   //不改变第一次报数值,只是让数字3的人为0{count++;}if(count == 3){a[i] = 0;  //让数到3的人为0count = 0;n--;  //人数-1}i++;if(i == temp){i = 0;}}for(i = 0;i < temp;i++){if(a[i] != 0)  //此时所有数到3的人都清零了,只有剩下的那一个不为0{printf("余下的为:%d号\n",a[i]);}}return 0;
}

#include<stdio.h>
#define nmax 50    //定义人数最大值
int main()
{int i,k,m,n,num[nmax],*p;printf("please input the total of numbers:");scanf("%d",&n);          p=num;            //p指向数组元素首地址 for(i=0;i<n;i++)*(p+i)=i+1;          //给数组元素1-n顺序赋值 i=0;       //指针回溯到第一个 k=0;      //k计数 初值0 m=0;
while(m<n-1)
{if(*(p+i)!=0) k++;       //如果计数不到3,k++ if(k==3)              //报数到3  对应数组元素赋值为0 { *(p+i)=0;k=0;            //计数器变为0 m++;            //继续向后进行  }i++;                //i++指针向后移动 if(i==n) i=0;           //如果到达最后,把最后元素当成第一个继续找
}while(*p==0) p++;       printf("%d is left\n",*p);      //输出唯一不是0的人·
}

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

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

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

  2. 有n个人围成一圈 顺序排号 java_java基础编程题有n个人围成一圈顺序排号

    下面给大家带来的这道编程题可以算得上是一道非常基础的java编程题目,刚刚开始接触java编程的小伙伴一起来看看具体的题目以及解题方法吧. 下面是具体的题目,题目还是非常的简单的. 一.题目 有n个人 ...

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

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

  4. 有n个人围成一圈 顺序排号 java_java有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出...

    public class Test { public static void main(String[] args) { // 测试数据 ArrayList list = new ArrayList( ...

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

    1 概述 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理).--C语言 2 解法 //C程序设计第五版(谭浩强) / ...

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

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

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

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

  8. 有n个人围一圈,顺序排号,报号游戏

    网上关于这个问题的解法已经有很多了,我现在是把网上的一些加上自己的理解,套用为一个固定写法,当然理解最重要啦! 我也是最近才开始学指针的,欢迎大家留言学习讨论 报数游戏的普遍说法: 有10个人围一圈, ...

  9. n个小孩围成一圈,顺序报号,从第一个人开始报数(从1报到5),凡是报到5的人退出圈子,问最后留下的小孩原来是几号

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

  10. 有n个人,顺序排列, 并首尾相连围成一圈。从第一个人开始报数(从1到4),凡报到4的人退出圈子+扩展版本

    https://blog.csdn.net/qq_44037213/article/details/106551760?fps=1&locationNum=2 有n个人(n<=1000) ...

最新文章

  1. jupyter安装与初探
  2. 【原】时势造英雄 Times makes heros, while heros shape the times!
  3. 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(4)--控件属性功能区...
  4. k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)
  5. qt: 获取sql数据表的所有的字段;
  6. ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能
  7. flutter开发仿抖音首页面上下滑动切换播放视频效果
  8. 在windows server 2008 R2上安装Bing Bar
  9. android 剪贴板增强工具,剪切板增强工具(ClipboardFusion Pro)
  10. 使用声卡录制编辑收藏自己喜欢的音乐
  11. python后端 工作 知乎_[Python]知乎后端实习生面试心得
  12. 一篇读懂深度学习中「训练」和「推断」的区别
  13. word格式刷刷完格式后公式上凸了怎么办?
  14. 转换TIFF图像为JPEG2000格式
  15. 关于Apple ID相关设置
  16. C++的四种强制转换
  17. UWA DAY 2021 议程亮相
  18. 《羊了个羊》服务器2天崩3次?去中心化云会成为下一代网络基础设施吗?
  19. 802.11协议精读10:节能模式(PSM)
  20. 基于FPGA 以太网gmii_to_rgmii模块编写 附源码

热门文章

  1. C语言虐我千百遍,我待他如初恋
  2. Processing-当使用代码来绘画
  3. Ubuntu16.04 GT730 显卡驱动安装
  4. ESP32的AP模式使用
  5. 《道德经》程序员版第六章
  6. android的实现关注好友功能,android仿微信好友列表功能
  7. 蓝桥---超声波测距
  8. HDLbits Exams/2013 q2bfsm verilog fpga
  9. Qt 之 MediaPlayer 音视频播放
  10. 嵌入式是做什么的可就业方向是怎样的?