21xrx.com
2024-11-05 16:32:59 Tuesday
登录
文章检索 我的文章 写文章
C++ 数组实训:猴子选大王
2023-06-22 14:26:40 深夜i     --     --
C++ 数组 实训 猴子 选大王

在C++学习的过程中,数组作为一个重要的数据结构,常常被应用于实际问题的解决中,本文将介绍一道有趣的练习题——猴子选大王,通过这道题目的实现,我们将巩固数组的应用能力。

题目描述:

一群猴子排成一列,每只猴子有一个编号,编号为 1,2,3 …… n。每只猴子有一个投票权,他要么投票给左邻居,要么投票给右邻居,但是他不能投给自己。投票结束后,得票最多的猴子成为大王,如果得票数相同,编号小的猴子成为大王。编写程序,输入猴子数量 n,以及每个猴子投票的方向(1表示向左投票,2表示向右投票),输出最后的大王编号。

思路:

我们可以利用一个数组存储每只猴子的编号,另外再定义一个数组存储每只猴子票数,根据每只猴子的投票方向,更新数组中每只猴子的得票数,最后找出得票最多的猴子即可。

具体代码实现如下:


#include<iostream>

#include<cstdio>

using namespace std;

const int maxn = 105;

int a[maxn], vote[maxn];

int main()

{

  int n, sum = 0;

  cin >> n;

  for(int i = 1; i <= n; i++)

    a[i] = i;

  for(int i = 1; i <= n; i++)

  {

    int direction;

    cin >> direction; //输入每个猴子的投票方向

    if(direction == 1)

    {

      vote[i-1]++;

    }

    else if(direction == 2)

    {

      vote[i+1]++;

    }

  }

  for(int i = 1; i <= n; i++) //寻找得票最多的猴子

  {

    if(vote[i] > vote[sum])

      sum = i;

  }

  cout << a[sum] << endl; //输出大王的编号

  return 0;

}

这个代码非常简单,我们可以用数组存储每只猴子的编号和得票数,通过输入每只猴子的投票方向,更新得票数数组,最后找到得票最多的猴子,输出其编号即可。

总结:

通过实现这个有趣的题目,我们可以巩固自己的C++数组应用的能力,同时,也能锻炼自己的逻辑思维。在以后的学习和工作中,数组是一个常用的数据结构,我们需要经常练习这种类型的题目,以便熟练掌握其应用方法和技巧。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复