查找数组中的最小值[关闭]

2024-03-04

我有两个数组:

int playerSums[9] = { };
string playerNames[9] = { };

我正在尝试获取最小值在数组中playerSums还有数组索引这个值。

到目前为止,这是我尝试过的:

if (playerNames[index] == "End" || playerNames[index] == "end") {
    int lowestValue = playerSums[0];
    for (i = 1; i < sizeof(playerSums) / sizeof(playerSums[0]); i++) {
        if (playerSums[i] < lowestValue || lowestValue != 0)
            lowestValue = playerSums[i]; 
    }
    cout << index[playerNames] << " had the lowest values and got the sum ";
    cout << lowestValue << endl;
}

如何找到并显示数组中的最小值playerSums如果例如只有 3 名玩家正在播放,即仅填充了数组的 3 个元素(其余元素等于 0)?

我需要索引来显示获得最小值的玩家的姓名。


您可以使用标准算法std::min_element在标头中声明<algorithm>找到总和最小的元素。例如

#include <algorithm>

int *min = std::min_element( playerSums, playerSums + 3 );

std::cout <<  playerNames[min - playerSums] 
          << " had the lowest values and got the sum " << *min
          << std::endl;

可以使用标准函数编写相同的内容std::begin, std::end and std::distance在标头中声明<iterator>

#include <algorithm>
#include <iterator>

int *min = std::min_element( std::begin( playerSums ), std::end( playerSums ) );

std::cout <<  playerNames[ std::distance( playerSums, min )] 
          << " had the lowest values and got the sum " << *min
          << std::endl;

您可以编写类似于该算法的自己的函数,而不是使用该算法。例如

size_t min_sum( const int playerSums[], size_t n )
{
   size_t min = 0;

   for ( size_t i = 1; i < n; i++ )
   {
      if ( playerSums[min] < playerSums[i] ) min = i;
   }

   return min;
}

size_t min = min_sum( playerSums, sizeof( playerSums ) / sizeof( *playerSums )  );

std::cout <<  playerNames[min] 
          << " had the lowest values and got the sum " << playerSums[min]
          << std::endl;

如果您需要跳过数组中等于零的元素,那么该函数将如下所示

size_t min_sum( const int playerSums[], size_t n )
{
   size_t min = 0;

   while ( min < n && playerSums[i] == 0 ) ++min;

   for ( size_t i = min; i < n; i++ )
   {
      if ( playerSums[min] < playerSums[i] ) min = i;
   }

   return min;
}

size_t min = min_sum( playerSums, sizeof( playerSums ) / sizeof( *playerSums )  );

if ( min != sizeof( playerSums ) / sizeof( *playerSums ) )
{   
    std::cout <<  playerNames[min] 
              << " had the lowest values and got the sum " << playerSums[min]
              << std::endl;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找数组中的最小值[关闭] 的相关文章

  • 为什么 VB.NET 和 C# 中针对值检查 null 存在差异?

    In VB NET http en wikipedia org wiki Visual Basic NET有时候是这样的 Dim x As System Nullable Of Decimal Nothing Dim y As System
  • 如何将十六进制字符串转换为十六进制数字[重复]

    这个问题在这里已经有答案了 可能的重复 如何将十六进制字符串转换为有符号整数 https stackoverflow com questions 3705429 how do i convert hex string into signed
  • 使用API​​隐藏程序标题栏

    它可以使用 c 和 windows api 删除窗口控制台标题栏 如果是的话如何 请 这个简单的应用程序隐藏并显示其所在控制台的标题栏 它会立即将控制台标题更改为 guid 以查找窗口句柄 然后 它使用 ToggleTitleBar 使用找
  • 在Application_AquireRequestState事件中用POST数据重写Url

    我有一个在其中注册路线的代码Application AcquireRequestState应用程序的事件 注册路由后 我会在 Http 运行时缓存中设置一个标志 这样我就不会再次执行路由注册代码 在此事件中注册路线有特定原因Applicat
  • Qt 计算和比较密码哈希

    目前正在 Qt 中为测验程序构建面向 Web 的身份验证服务 据我了解 在数据库中存储用户密码时 必须对其进行隐藏 以防落入坏人之手 流行的方法似乎是添加的过程Salt https en wikipedia org wiki Salt cr
  • 矩阵向量变换

    我正在编写一个代码来制作软件蒙皮器 骨骼 皮肤动画 并且我正处于 优化 阶段 蒙皮器工作得很好 并且在 Core 上 1 09 毫秒内对 4900 个三角形网格与 22 个骨骼进行蒙皮Duo 2 Ghz 笔记本 我需要知道的是 1 有人可以
  • 方法“xxx”不能是事件的方法,因为该类派生的类已经定义了该方法

    我有一个代码 public class Layout UserControl protected void DisplayX DisplayClicked object sender DisplayEventArgs e CurrentDi
  • 是否有像 gccxml 这样的用于生成包装器的 C 标头解析器工具?

    我需要为一种新的编程语言编写一些 C 标头包装器 并且想要类似 gccxml 的东西 但不完全依赖 gcc 以及它在 Windows 系统上带来的问题 只需要读C而不是C 只要有完整的文档记录 任何格式的输出都可以 Linux Solari
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • 指向字节数组的指针

    由于 Misra C 的要求 我的一位同事想要使用指针声明 但我遇到了一些问题 Misra 安全关键指南 不会让我们纯粹的程序员使用指针 但会让我们对数组字节进行操作 他打算获取一个指向字节数组的指针 因此我们不会在堆栈上传递实际的数组 T
  • 手动将 ClientBase 集合类型从 Array[] 更改为 List<>

    我将自己的 WCF 代理与 Client Base 一起使用 我想做一些类似于 svc util 中的 ct 属性的操作 并告诉代理返回 List 集合类型 我不能使用 List 因为实体由 nhibernate 管理 所以我必须使用 IL
  • 无法加载文件或程序集“EntityFramework,版本=6.0.0.0”

    我究竟做错了什么 我该如何解决这个问题 我有一个包含多个项目的解决方案 它是一个 MVC NET 4 5 Web 应用程序 在调试模式下启动后调用其中一个项目时 出现此错误 导致此错误的项目具有以下参考 两个都是版本6 0 0 0 应用程序
  • 错误左值需要作为赋值C++的左操作数

    整个程序基本上只允许用户移动光标 如果用户位于给定的坐标范围 2 2 内 则允许用户键入输入 我刚刚提供了一些我认为足以解决问题的代码 我不知道是什么导致了这个问题 你能解释一下为什么会发生吗 void goToXY int int 创建一
  • 正确使用“extern”关键字

    有一些来源 书籍 在线材料 解释了extern如下 extern int i declaration has extern int i 1 definition specified by the absence of extern 并且有支
  • 不兼容的类型 - 是因为数组已经是指针吗?

    在下面的代码中 我创建一个基于书籍结构的对象 并让它保存多个 书籍 我设置的是一个数组 即定义 启动的对象 然而 每当我去测试我对指针的了解 实践有帮助 并尝试创建一个指向创建的对象的指针时 它都会给我错误 C Users Justin D
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS
  • 从 C 线程调用 Python 代码

    我对从 C 或 C 线程调用 Python 代码时如何确保线程安全感到非常困惑 The Python 文档 http docs python org c api init html non python created threads似乎是
  • 无法使 Polly 超时策略覆盖 HttpClient 默认超时

    我正在使用 Polly 重试策略 并且正如预期的那样 在重试过程中HttpClient达到 100 秒超时 我尝试了几种不同的方法来合并 Polly 超时策略 将超时移至每次重试而不是总计 但 100 秒超时仍然会触发 我读过大约 5 个
  • 新的 .NET 6 控制台模板中的 C# 函数重载不起作用

    我在尝试重载该函数时遇到错误Print object in the 新的 NET 6 C 控制台应用程序模板 https learn microsoft com en us dotnet core tutorials top level t
  • FindAsync 很慢,但是延迟加载很快

    在我的代码中 我曾经使用加载相关实体await FindAsync 希望我能更好地遵守 C 异步指南 var activeTemplate await exec DbContext FormTemplates FindAsync exec

随机推荐

  • Spring MVC 在表单中选择值:表单验证错误后选择

    我的验证表单有问题 该表单有很多不同的字段 输入文本字段 选择选项 多重选择选项 我已经使用 Spring Security 开发了有关验证表单的所有逻辑源代码 但是当验证表单失败 例如 用户没有填写任何内容 并再次重新加载表单时 所有输入
  • 没有开发者许可证/应用商店的 iOS 应用

    我是 iPhone 开发新手 想知道是否有一个好的 简单的指南可以让我在不加入开发者计划的情况下在越狱手机上安装 iOS 应用程序 基本上 我不知道我是否有时间学习我需要学习的所有内容 但我想开始看看它会带来什么结果 一旦我有了一些像样的东
  • 为什么我的可转换核心数据属性不使用我的自定义 NSValueTransformer?

    我有一个核心数据应用程序 具有相当简单的数据模型 我希望能够将 NSImage 实例作为 PNG Bitmap NSData 对象存储在持久存储中 以节省空间 为此 我编写了一个简单的 NSValueTransformer 将 NSImag
  • 从日期中提取年中的天数

    我有一个这样的日期列表 library lubridate my dates lt c 03 01 2006 28 01 2006 12 01 2008 02 02 2006 03 03 2008 my dates lt dmy my da
  • 在密码框的某些事件中显示密码字符

    我正在开发一个 Windows Phone 应用程序 我要求用户登录 在登录页面上 用户必须输入密码 现在我想要的是给用户一个复选框 选择该复选框后应显示密码的字符 我没有在密码框中看到任何显示密码字符的属性 请建议一些方法来做到这一点 不
  • 调试和分析网络工作者

    我正在运行计算 例如网络工作者的寻路 这可能需要几秒钟 我想优化它 对于我当前的代码来说 Chrome 似乎快了大约 3 倍 但是时间花在哪里或者为什么我不知道 一般来说 如何调试 Web Worker 如何分析网络工作者 火狐和 Chro
  • 使用 jQuery 隐藏跨度

    即使已经嵌入图像 如果没有文本 如何隐藏跨度 基本上每个跨度中都嵌入了很少的网页图标和视频图标 访问网站 webicon 查看视频 videoicon 因此 如果 没有链接文本 嵌入WEBICON 包括图像图标在内的整个内容都应该隐藏 di
  • 如何让 Backbone.ajax 返回成功数据

    我试图让 Backbone ajax 返回集合 集合 我需要程序的另一部分的模型 我想让数据在与 ajax 方法相同的级别上可用 Backbone ajax dataType jsonp url https api twitter com
  • 如何通过字符串或整数获取枚举值

    如果我有枚举字符串或枚举 int 值 如何获取枚举值 例如 如果我有一个枚举如下 public enum TestEnum Value1 1 Value2 2 Value3 3 在某些字符串变量中 我的值 value1 如下 string
  • 我想找到线程消息并使用 slack-api 删除它

    可以通过以下方法找到私信或私信im history and converstation history 如何查找话题消息 我想找到线程消息并删除它们 查找话题消息 您需要使用conversations history https api s
  • jQuery 验证插件 - 如何在页面加载时显示标签

    填写输入后 该插件会插入一个标签 但是我希望在页面加载时插入所有标签 任何想法都会很棒 谢谢 该插件的链接在这里 http jqueryvalidation org documentation http jqueryvalidation o
  • 如何计算列表中点的距离?

    我有两组列表 A 和 O 它们都有来自 x y z 坐标的点 我想计算A点和B点之间的距离 我使用了for循环 但它只给了我一个结果 它应该从结果中给出 8 个数字 我很感激有人能看一下 这是我的项目的最后一步 Ax 232 34 233
  • 如何设置 Eclipse 工作区机制来共享设置?

    我该如何配置这个工具 我已经在 Eclipse 环境中设置了首选项 底部图标显示工作区机制正常 但是 当我打开工作区或创建新工作区时 没有任何反应 没有任何首选项 如何设置工作区机制 以及如何告诉工作区使用另一个工作区的设置 默认情况下 工
  • 在面向对象编程中,null 的最佳替代方案是什么?

    我觉得不满意在面向对象编程中 有其他解决方案吗 我不喜欢避免它this way http en wikipedia org wiki Null Object pattern either 最好的处理方法是什么 Java 8 有新的Optio
  • 在 Rails 中使用部分的最佳实践

    为了与 DRY 原则保持一致 当我重复某个特定模式超过一两次时 我会尝试使用部分模式 结果 我的一些观点由十个或更多不同的部分组成 我担心这可能会对整体表现产生负面影响 一些编程书籍将部分的使用与方法的使用进行比较 那么我应该使用相同的理由
  • 应用 CSS3 缩放时可排序行为错误

    我正在使用 CSS 转换缩放 JQuery 可排序元素 拖动时可排序项目的起始位置和偏移量都是错误的 因为 JQuery 不考虑 CSS 比例 我用这里找到的代码部分解决了这个问题 jQuery 拖动 使用 CSS 变换比例调整大小 htt
  • JSF2.0的宽度如何设置?

    代码 div div
  • 单个查询中多个日期范围的总和?

    我有以下查询 SELECT SUM balance transactions fee AS sum id FROM balance transactions JOIN charges ON balance transactions sour
  • Objective-C 插件架构安全性(Mac,不是 iPhone)

    我可能正在为 Cocoa 应用程序 Mac 而不是 iPhone 编写一个插件系统 一种常见的方法是将每个插件打包为一个包 然后将该包注入到主应用程序中 我担心这样做的安全隐患 因为捆绑包将具有对 Objective C 运行时的完全访问权
  • 查找数组中的最小值[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有两个数组 int playerSums 9 string playerNames 9 我正在尝试获取最小值在数组中p