移动数组C++中的特定元素
Moving Specific elements in an array C++
我正在尝试以特定的方式交换数组中的元素。
我创建了一个一维数组,但我用二维显示它。目标是将元素从一个位置交换到另一个位置。我在下面开发了自己的交换代码,让用户选择他想和另一个元素切换的元素。
我的问题或我需要帮助的地方是,我如何让用户输入A0,并将A0处的内容与A1交换。
以下是我一直试图开发这个解决方案的代码,但无法同时实现这两个想法。
所以基本上现在A0=4,A1=3。所以目标是让A0=3,A3=4。下面的代码顶部是我创建的一个引用表,用于查看初始数组。在未来,我还想开发另一种输入,其中用户可以输入L或R来交换元素的左侧或右侧。。但这将是另一次的担忧。在我了解如何操作之后。
#include <iostream>
using namespace std;
// 0 1 2 3 4
// ------------ //
// A | 4 3 2 1 5 | // In 1-d A is 0-4 elements
// B | 7 6 8 9 10 | // In 1-d B is 5-9 elements
// ------------
int main()
{
int number[10] = { 4, 3, 2, 1, 5, 7, 6, 8, 9, 10 };
int temp = 0;
int src = 0;
int des;
int n = 0;
// Below was me trying to take an user input to move within elements in A. Its flawed because if n is greater that 4 it goes into B section which is what I dont need.
cout << "Choose an n: " << endl;
cin >> n; // The n helps to direct Which position in A so if i want to acces A4 the n needed to input is 4
int A = number[0 + n];
int B = number[5 + n];
cout << A << endl;
cout << "Before the swap array is: " << endl;
for (int i = 0; i < 10; i++) {
if (i % 5 == 0) {
cout << endl;
}
cout << number[i] << " ";
}
cout << endl;
cout << "Choose starting position" << endl;
cin >> src;
cout << "Choose ending position" << endl;
cin >> des;
temp = number[src];
number[src] = number[des];
number[des] = temp;
cout << "After the swap the array is:" << endl;
for (int i = 0; i < 10; i++) {
if (i % 5 == 0) {
cout << endl;
}
cout << number[i] << " ";
}
return 0;
}
这里还有它目前如何运行的在线视图。。。。。。https://onlinegdb.com/Sk2DEDG9S
您可以将输入src
和dst
都读取为字符串。
std::string src, dst;
std::cin >> src >> dst;
您可以使用确定索引
int idxSrc = (src[0] == 'A' ? 0 : 5) + src[1] - '0';
int idxDst = (dst[0] == 'A' ? 0 : 5) + dst[1] - '0';
如果用户输入例如A3
,则索引被确定为0+3=3。如果用户输入B2
,则索引被确定为5+2=7。在带有'A' + 1 == 'B'
的系统上,您也可以使用
int idxSrc = 5 * (src[0] - 'A') + src[1] - '0';
int idxDst = 5 * (src[0] - 'A') + dst[1] - '0';
然后你可以用交换它们
std::swap(numbers[idxSrc], numbers[idxDst]);
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 如何将元素添加到数组的线程安全函数?
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输出没有重复元素的动态数组(收缩数组)C++
- 数组中最大的非重复元素
- 数组元素打印的递归方法
- 对字符数组中的元素执行逐位操作
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 通过交换元素使数组相同
- 按平均值替换数组中的元素
- 打印矢量数组中的所有元素
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 如何将元素从向量转移到新数组?
- 如何在向量数组中插入元素?
- 为什么 2 个相同数组的元素彼此相等
- C++ 中的二维整数数组,每行中的元素数量不均匀