按升序打印阵列旨在下降
Printing arrays in ascending order meant to descend
我正在尝试打印一个球员,他们的分数从最高分数到最低。我可以将其下降,但与正确的播放器名称无关。
使用以下代码:
void showPlayers() {
int desc;
for (int i = 0; i < pointer; i++) {
for (int j = 0; j < pointer; j++) {
if (scores[i] < scores[j]) { //flipping comparison operator descends data,
//but either increments/decrements each player's
//score
desc = scores[i];
scores[i] = scores[j];
scores[j] = desc;
}
}
}
for (int i = 1; i < pointer; i++) {
cout << playerNames[i] << "t" << scores[i] << "n";
}
cout << endl;
}
我收到的输出类似:
Player1 20
Player2 30
Player3 40
for (int i = 0; i < pointer; i++) {
for (int j = 0; j < pointer; j++) {
if (scores[i] > scores[j]) {
swap(scores[i], scores[j]);
}
}
}
for (int i = 0; i < pointer; i++) {
for (int j = 0; j < pointer; j++) {
if (playerNames[i] > playerNames[j]) {
swap(playerNames[i], playerNames[j]);
}
}
}
for (int i = 0; i < pointer; i++) {
cout << playerNames[i] << "t" << scores[i] << "n";
}
在if
语句中使用此信息:
std::swap(scores[i], scores[j]);
std::swap(playerNames[i], playerNames[j]);
交换得分时,您不会交换相应的playerNames
。另外,如果您使用std::swap
。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- OpenMP阵列性能较差
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 按对象的特定方法按升序排列的C++优先级队列
- 如何将三维尺寸不固定的三维阵列展平为一维阵列
- 当我的阵列太大时出现分段错误
- 位阵列上的快速AND运算
- 阵列必须使用大括号封闭的初始器进行初始化
- 为什么我的递归函数按降序打印,然后按升序打印?
- 没有从阵列<float>到阵列<int>的可行转换
- C++动态安全 2D 交错阵列
- 将平面阵列重塑为复杂的特征类型
- 如何使用英特尔 PIN 捕获阵列的所有负载?
- 为什么我能够为阵列分配比计算机实际拥有的内存更多的内存
- 库特<<恩德尔;不适用于打印 2D 阵列
- 将值插入到标准 c++ 数组的正确索引(升序)中
- 数组类 阵列的打印输出
- C++ - 将元素按升序插入数组的 SEG 错误
- 从较小的阵列到较大的阵列的元素级转换
- 按升序打印阵列旨在下降