c语言数组定义-经典问题:猴子选大王!本人c语言新手?

问题描述

经典问题:猴子选大王!本人c语言新手?

山上住着10个猴子,猴子编号从1到10。现要从中选出一个大王。猴子们围成一圈,从第一个猴子开始数数,数到n就退出圈子,直到剩下最后一个猴子,并输出猴子王的编号。

解决方案

刚学一维数组。。。。

解决方案二:

这里将人数定死在10个人了

#include<stdio.h>
#include<iostream>
using namespace std;

int main()
{
    int i, j, k, m;
    int num[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};//以1至n为序给每个人编号
    printf("输入报数的数字:j=");
    scanf("%d",&j);

    i = 0;//i为每次循环时计数变量
    k = 0;//k为按1,2,3...报数时的计数变量
    m = 0;//m为退出人数
    while(m < 9)//当退出人数比n-1少时执行循环体
    {
        if(num[i] != 0)//当前的这个人还没有出局
            k++;
        if(k == j)//这个人这轮需要出局
        {
            printf("出局人序号:%dn", num[i]);
            num[i] = 0;//将退出的人的编号置为0
            k = 0;//k报到j后,重置为0
            m++;//退出的人数+1
        }
        i++;
        if(i == 10)
            i = 0;//报数到尾后,i恢复为0
    }
    for(i = 0; i < 10; i++)
    {
        if(num[i] != 0)
            printf("最后留下的人的编号是:%dn", num[i]);//只有一个num[i]不是0
    }

    system("pause");
    return 0;
}

运行结果:

解决方案三:

这是个经典的循环链表 具体的写不出来

时间: 2024-11-18 01:05:29

c语言数组定义-经典问题:猴子选大王!本人c语言新手?的相关文章

数据结构实践——猴子选大王(数组版)

本文针对数据结构基础系列网络课程(5): 数组与广义表的实践项目. [项目 - 猴子选大王(数组版)] 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,最后一只出圈的猴子为大王.输入m和n,输出猴子离开圈子的顺序,从中也可以看出最后为大王是几号猴子. 要求采用数组作为存储结构完成. [参考解答1] 在一个数组中,数组中用1表示猴子在圈中,用0表示猴子已经出圈,数组下标对应与猴子编号对应(例如数组元素p[0

php实现猴子选大王问题算法实例

  下面为你介绍php实现猴子选大王问题算法实例.          本文实例讲述了php实现猴子选大王问题算法.分享给大家供大家参考.具体分析如下: 一.问题: n只猴子围坐成一个圈,按顺时针方向从1到n编号. 然后从1号猴子开始沿顺时针方向从1开始报数,报到m的猴子出局,再从刚出局猴子的下一个位置重新开始报数, 如此重复,直至剩下一个猴子,它就是大王. 设计并编写程序,实现如下功能: (1) 要求由用户输入开始时的猴子数$n.报数的最后一个数$m. (2) 给出当选猴王的初始编号. 二.解决

数据结构实践——猴子选大王

本文针对数据结构基础系列网络课程(2):线性表的实践项目. [项目 - 猴子选大王] 一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.输入m和n,输出为大王的猴子是几号. 提示: (1)链表解法:可以用一个循环单链表来表示这一群猴子.表示结点的结构体中有两个成员:一个保存猴子的编号,一个为指向下一个人的指针,编号为m的结点再指向编号为1的结点,以此构成环形的链.

php猴子选大王问题解决方法

  本文实例讲述了php猴子选大王问题解决方法.分享给大家供大家参考.具体分析如下: 问题描述: 一群猴子排成一圈,按1,2,...,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去...,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王.要求编程模拟此过程,输入m.n, 输出最后那个大王的编号. 解决方法: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

猴子选大王-约瑟夫环

jobdu-1188:约瑟夫环-ac 猴子选大王,如此经典的问题  

c语言数组定义-关于c语言数组的描述问题

问题描述 关于c语言数组的描述问题 我在数据结构的课本上看到了一个很诡异的写法,A[-20..30,-30..20] 求教,这是什么意思?课本上还说这是个二维数组. 还有A[i,j]这种写法,还都说是二维数组. 主要是前者的那个符号让我很不解啊. 解决方案 关于C语言中对数组取址的问题C语言中数组的初始化问题C语言数组初始化问题 解决方案二: 没见过哪个语言这么表示二维数组,但是python里的确可以取负数下标哦-

2014秋C++第19周 项目2参考 猴子选大王

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目2-猴子选大王]一群猴子,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈.从第1只开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王.输入m和n,输出为大王的猴子是几号.提示1:(1)链表解法:可以用一个循环的单链表

c语言数组定义-哪个大神能帮我解释下这段代码,在线等

问题描述 哪个大神能帮我解释下这段代码,在线等 这个是凯撒密码的代码,哪个大神帮我看哈我的这个里面每句的意思 解决方案 把英文字母变换一下,如D换为AA换为X,B换为Y 解决方案二: 就是获取到输入的字符串,然后对每一位进行判断,如果在区间[dz]或区间[DZ]减3,剩下的加23 解决方案三: 就是获取到输入的字符串,然后对每一位进行判断,如果在区间[dz]或区间[DZ]减3,剩下的加23 解决方案四: 就是获取到输入的字符串,然后对每一位进行判断,如果在区间[dz]或区间[DZ]减3,剩下的加

c语言数组定义-c++中的字符串数组问题

问题描述 c++中的字符串数组问题 char str[]; str="i love china"; 请问这样的语法有问题吗? 解决方案 在定义数组时一般要指明数组长度,如果定义时直接初始化,可以不指定长度,如: char str[]="i love china"; 所以你的写法在语法上是错误的. 解决方案二: char str[100]; str="i love china"; 解决方案三: 测试一个程序,将多个字符串数组依次遍历,找出待查找的字