有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号的那位。(*)
有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的人退出圈子,问最后留下的是原来第几号的那位。(*)相关推荐
- 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成
题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成 #include <stdio.h> in ...
- 有n个人围成一圈 顺序排号 java_java基础编程题有n个人围成一圈顺序排号
下面给大家带来的这道编程题可以算得上是一道非常基础的java编程题目,刚刚开始接触java编程的小伙伴一起来看看具体的题目以及解题方法吧. 下面是具体的题目,题目还是非常的简单的. 一.题目 有n个人 ...
- c/c++ 有n个人围成一圈, 顺序排号。从第1个人开始报数(从1~3报数), 凡报到3的人退出圈子, 问最后留下的人原来排在第几号。
解题思路的重要性显现出来了 比如这个题 n个人肯定是要用数组 毋庸置疑 那么报数怎么实现呢 可以设置一个循环变量 让他从0开始循环 当等于3 的时候 就归零 还有 n个人 肯定需要很多圈报数 这个很多 ...
- 有n个人围成一圈 顺序排号 java_java有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出...
public class Test { public static void main(String[] args) { // 测试数据 ArrayList list = new ArrayList( ...
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理)。——C语言
1 概述 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理).--C语言 2 解法 //C程序设计第五版(谭浩强) / ...
- 详细讲解C语言经典例题:有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位
有n个人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下的是原来第几号的那位 如题,相信很多人都和我一样,当时看到根本不知道从何下手.那么我们先不看代码,画图 ...
- 有n个人围成一圈,顺序排号。从第一个人开始报数(从1报到3),凡是报到3的人退出圈子,问最后留下的是原来第几号的那位
问题详情:有n个人围成一圈,顺序排号.从第一个人开始报数(从1报到3),凡是报到3的人退出圈子,问最后留下的是原来第几号的那位? 我的代码: #include<stdio.h> int m ...
- 有n个人围一圈,顺序排号,报号游戏
网上关于这个问题的解法已经有很多了,我现在是把网上的一些加上自己的理解,套用为一个固定写法,当然理解最重要啦! 我也是最近才开始学指针的,欢迎大家留言学习讨论 报数游戏的普遍说法: 有10个人围一圈, ...
- n个小孩围成一圈,顺序报号,从第一个人开始报数(从1报到5),凡是报到5的人退出圈子,问最后留下的小孩原来是几号
n个小孩围成一圈,顺序报号,从第一个人开始报数(从1报到5),凡是报到5的人退出圈子,问最后留下的小孩原来是几号 #include<stdio.h> int main() {int i,k ...
- 有n个人,顺序排列, 并首尾相连围成一圈。从第一个人开始报数(从1到4),凡报到4的人退出圈子+扩展版本
https://blog.csdn.net/qq_44037213/article/details/106551760?fps=1&locationNum=2 有n个人(n<=1000) ...
最新文章
- jupyter安装与初探
- 【原】时势造英雄 Times makes heros, while heros shape the times!
- 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(4)--控件属性功能区...
- k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)
- qt: 获取sql数据表的所有的字段;
- ML.NET 发布0.11版本:.NET中的机器学习,为TensorFlow和ONNX添加了新功能
- flutter开发仿抖音首页面上下滑动切换播放视频效果
- 在windows server 2008 R2上安装Bing Bar
- android 剪贴板增强工具,剪切板增强工具(ClipboardFusion Pro)
- 使用声卡录制编辑收藏自己喜欢的音乐
- python后端 工作 知乎_[Python]知乎后端实习生面试心得
- 一篇读懂深度学习中「训练」和「推断」的区别
- word格式刷刷完格式后公式上凸了怎么办?
- 转换TIFF图像为JPEG2000格式
- 关于Apple ID相关设置
- C++的四种强制转换
- UWA DAY 2021 议程亮相
- 《羊了个羊》服务器2天崩3次?去中心化云会成为下一代网络基础设施吗?
- 802.11协议精读10:节能模式(PSM)
- 基于FPGA 以太网gmii_to_rgmii模块编写 附源码