c语言有n个人围成一圈用指针,C语言 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子...
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2021/05/20 00:22:21
C语言 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子
有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子,下一个人从1开始重新报数,报数3的人退出圈子.如此循环,直到留下最后一个人.问留下来的人的编号.
【输入形式】
考虑如下两种情况:
如果n超出“n must be a natural number less than 10000”,则打印“n is out of range of valid values.”;其中n应该用如上输入的具体的n数值代替;换行;
如果n是有效范围的数值,则打印“Last No.is:”;然后直接在冒号后面输出最后留下来的人的编号;换行;
【运行时的输入输出样例1】(下划线部分表示输入)
Input n(n must be a natural number less than 10000):5
Last No.is:4
【运行时的输入输出样例2】(下划线部分表示输入)
Input n(n must be a natural number less than 10000):100000
100000 is out of range of valid values.
我的程序为什么死循环啊.刚学指针,求改正,
#include
#define N 9999
int main()
{
\x05int n,a[N],*p,i=0,out=0,count=0;
\x05printf("Input n(n must be a natural number less than 10000):");
\x05scanf("%d",&n);
\x05if(n>=10000)
\x05\x05printf("n is out of range of valid values.");
\x05else
\x05{
\x05\x05for(i=0;i
#include
#define N 9999
int main()
{
int n,a[N],*p,i=0,out=0,count=0;
printf("Input n(n must be a natural number less than 10000):");
scanf("%d",&n);
if(n>=10000)
printf("n is out of range of valid values.");改为printf("%d is out of range of valid values.",n);
else
{
for(i=0;i
再问: 我重新根据你的改了下,还是死循环,逐步调试后,if(*p!=0)这个,全部被跳过了... 可是明明p是指向a[]的啊...然后就死循环了.. 还有那个for(;;)是什么意思,没有判断等语句,不是等于没有用么?.
再答: 确实不行,因为*p==0的情况没有处理,这样遇到一个*p==0就一直死循环了 至于那个for循环的判断语句在循环里面,就是那个break;也可以用while(1)来代替 把p=a;改为p=&a[1];后面循环写成下面这样看看 while(out!=n-1) { while(1) { if(*p!=0) count++; if(p==&a[n]) p=&a[1]; else p++; if(count==3) { if(p==&a[1]) a[n]=0; else p--; out++; //在这儿家加上printf("%d->",*p);就可以把顺序打出来了 *p=0; break; } }结束while(1) count=0; }结束while(out!=n-1) for(i=1;i
c语言有n个人围成一圈用指针,C语言 有n个人围成一圈,按顺序从1到n编号.从第一个人开始报数,报数3的人退出圈子...相关推荐
- 有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少?
有n个人围成一圈,顺序排号,从第一个人开始报数(1-3报数),凡是报数为3的人退出圈子,问最后留下的人原来的编号是多少? 花了半个下午搞出来的代码,调试了一会,一切正常,感觉还不错! '''解题思路: ...
- 1056: 约瑟夫问题【n人围成一圈,报数为3的人退出圈子,问最后留下的人原来的编号。】
Description 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. Input 初始人数n Output 最后一人的初始编号 ...
- ACMNO.38 C语言-报数 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号. 从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.`在这里插入代码片` 问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样 ...
- python n个人围成一圈,Python练习代码实例69-有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的...
Python 练习实例69 题目:有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位. 程序分析:无. 程序源代码:#!/usr/bi ...
- (C语言)有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
题目描述 有n人围成一圈,顺序排号.从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位. 输入 初始人数n 输出 最后一人的初始编号 样例输入 3 样例输出 2 ...
- 算法训练 - 筛选号码 (有n个人围成一圈,顺序排号(编号为1到n)。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子。从下一个人开始继续报数,直到剩下最后一个人,游戏结束。)
问题描述 有n个人围成一圈,顺序排号(编号为1到n).从第1个人开始报数(从1到3报数),凡报到3的人退出圈子.从下一个人开始继续报数,直到剩下最后一个人,游戏结束. 问最后留下的是原来第几号的那位. ...
- 约瑟夫环问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。...
首先,我最大的学习来源不是百度而是我群友~~在这里表白一波我热爱学习的群友们! 然后今天群里突然有人提出了题目的这个问题: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人 ...
- 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成
题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位. 提示:用数组完成 #include <stdio.h> in ...
- 习题 6.5 有n个人围成一圈,顺序排号。从第1个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
C++程序设计(第三版) 谭浩强 习题6.5 个人设计 习题 6.5 有n个人围成一圈,顺序排号.从第1个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号. 代码块: # ...
最新文章
- PostgreSQL 客户端乱码问题
- 一个高效的定时任务系统
- 神策数据荣登《中国企业家》“未来之星”榜单
- Linux系统下对flash的测试方法
- 记一个bug定位与修复过程
- 在Windows Mobile模拟器(Emulator)建立网络连接
- tomee_Apache TomEE + JMS。 从未如此简单。
- 织梦dedecms的框架的Webshell
- java 8 list和数组之间的相互转换
- 《操作系统真象还原》-阅读笔记(下)
- java .do是什么_为什么Java Web应用程序使用.do扩展名?它从哪里来的?
- 职场中几个最忌讳的行为模式。
- python代码写好了怎么运行-python代码是怎样运行的
- MD5介绍与MD5加密的C++实现
- 性能测试学习笔记-如何管理loadrunner的临时文件
- python之HTML文件转PDF文件,python之把HTML文件转换成PDF格式文档
- AVAudioPlayer音频播放器—IOS开发
- 2017年3月4月无人机航空摄影总结
- 使用wireshark分析HTTPS数据包
- H5纯静态页面分享到微信朋友圈带图片显示