我想从数组复制到字符
I want to copy from array to char
大家好,如果我的英语不是那么好,对不起。
我正在尝试制作一个有 5 个玩家的程序,每个玩家有 5 个随机整数每个球员的总和.然后我想检查谁的积分最多,并用消息打印他的名字.
我正在尝试做:
for (int i=0;i<5;i++)
{
if (p[i].sum>p[i+1].sum)
{
strcpy(p[i].name,winner);
}
else strcpy(p[i+1].name, winner);
}
cout << "The winner is : " << winner << endl;
但是获胜者值不会改变。这是屏幕截图 http://prntscr.com/abxqd3
提前谢谢你。
"winner"的值不会明显改变,因为您没有在任何地方修改其值,并且代码查找最大元素的逻辑不正确。如果您正在尝试找到最大值并将名称复制到 winner 变量,您应该尝试此操作
int max = 0; // index of the largest sum, initially assumed to be 0
for (int i=1;i<5;i++)
{
if (p[i].sum>p[max].sum)
{
max = i;
}
}
strcpy(winner, p[max].name);
cout << "The winner is : " << winner << endl;
我认为首先你应该修复你的逻辑错误。你只需比较玩家 i 和下一个玩家的总和。这没有意义。
例如,假设您有这些总分 8,3,1,4,6。 因此,在第一次迭代中,您将 winner 设置为玩家 0,其值为 8,但在下一次迭代中设置为 3,依此类推。 在上次迭代中,您获得了得分为 6 的玩家的名称,但您应该拥有得分为 8 的玩家。
因此,您始终拥有在数组的最后一个元素之间得分较大的玩家名称作为获胜者。
您应该定义一个具有播放器类型的对象,用于存储最大总和(如 pmax)的播放器,并将 if 条件更改为波纹管
if (p[i].sum>pmax.sum)
{
pmax.name=p[i].name;
pmax.sum=p[i].sum;
}
cout << "The winner is : " << pmax.name << endl;
相关文章:
- 在这种情况下,我真的复制了字节还是复制了字符?
- 如何返回/复制unique_ptr<无符号字符[]>的值?
- 使用动态分配将 char* 复制到另一个字符**
- 库达如何将字符**从内核复制到主机
- 将字符向量复制到另一个向量
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 将字符数组复制到 QByte 数组中,而无需传递指针
- 为什么我的代码在尝试复制字符数组时引发 C6386 错误?
- 使用 strcpy_s 将字符串复制到字符*
- 字符* 复制到另一个字符* 运行时错误
- C 内联汇编试图将STD :: String的字符复制到寄存器中
- 如何将 (ICU4C) Unicode 字符串逐个字符复制到另一个 Unicode 字符串
- 将第一个n个字符复制到std :: string
- 将无符号字符*复制到无符号字符
- 如何在 C++ 中将一些字符复制到字符串中
- 从未签名字符复制到无符号字符
- 您好,我想将一个字符复制到 2D 数组,但第二个字符会擦除第一个字符
- 将分配有 malloc 的字符 * 复制到 std::string
- 如何在c++中进行反向字符复制
- 如何将字符复制到字符数组