将符号指定给二维阵列中的数字
Assigning Symbols to Numbers in a 2D Array
我正在用C++编写一个程序,该程序应该读取文件,将文件内容存储到2D数组中,为数组中的每个数字分配字符并存储在char数组中,然后打印这两个数组。然后,它应该遍历初始数组,确保每个数字与相邻数字的值相差不超过1,通过用相邻数字的平均值替换这些数字来纠正这些错误,像以前一样将字符分配给这个纠正后的数组,并打印这两个数组。
角色分配如下:
0=blank
1=.
2=,
3=_
4=!
5=+
6=*
7=#
8=$
9=&
我已经编写了打开文件和加载数组的代码,但我不知道该从哪里开始。对我来说,显而易见的(尽管可能不是最好的)赋值方法是使用for循环遍历数组,并使用一系列if语句来检查每个索引处的数字值,并分配适当的符号。我相信有更好的方法可以做到这一点。
这是我迄今为止的代码:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream prog;
prog.open("../prog1.dat");
//If file can't be opened, exit
if (!prog) {
cerr << "File could not be opened" << endl;
exit(EXIT_FAILURE);
}
else {
while (!prog.eof()) {
int size = 100, i, j;
prog >> size;
int **numArray = new int* [size];
for(i = 0; i < size; i++) {
numArray[i] = new int[size];
for(j = 0; j < size; j++) {
prog >> numArray[i][j];
}
cout << endl;
}
for(i = 0; i < size; i++) {
for(j = 0; j < size; j++) {
cout <<numArray[i][j] << " ";
}
cout << endl;
}
prog.close();
return 0;
}
}
}
我对这种编程语言非常陌生,这实际上是我用C++编写的第一个程序,我正在边学习边学习。如有任何建议,我们将不胜感激。
在这段代码中,您没有检查与neighbor的差异。此外,它们不需要2个嵌套的for循环,这是一个非常大的开销。您可以在第一个嵌套的for循环中打印numArray。
根据你的说法,这是你的第一次编程任务,你已经在使用双指针和嵌套循环,以及你检查文件是否打开的方式。你确定这是你的第一次任务吗
相关文章:
- 二维阵列的动态分配
- C2440 使用Shared_ptr创建二维阵列
- 围绕二维阵列做一个圆圈
- 为什么一个二维阵列会导致赛段故障,而另一个则不会导致?
- 二维阵列的名称到底代表什么?
- 返回二维阵列
- 是二维阵列访问/修改时间组
- 如何创建一个具有空值、递减编号系统和.txt文件输入值的二维阵列网格
- 八个皇后二维阵列,带有gotos errror
- C++中的二维阵列
- 使用矢量创建二维阵列
- 编制二维阵列
- 错误:解除分配二维阵列
- 复制二维阵列C++
- 将二维阵列模拟为一维阵列
- 从具有两列的文件中加载二维阵列
- 可调整大小的动态二维阵列的更好解决方案
- 使用二维阵列用C++求解埃拉托色尼筛
- 如何显示非对角线二维阵列元素
- 嵌套阵列或嵌套二维阵列