将符号指定给二维数组中的数字 我正在研究C++中的一个程序,它应该在一个文件中读取,将文件的内容存储到一个2D数组中,给数组中的每个数字分配字符并存储在一个字符数组中,并打印这两个数组。然后,它应该遍历初始数组,确保每个数字与其相邻数字的值相差不超过1,通过将这些数字替换为其相邻数字的平均值来纠正这些错误,像以前一样将字符分配给此已纠正的数组,然后打印两个数组
字符分配如下所示:将符号指定给二维数组中的数字 我正在研究C++中的一个程序,它应该在一个文件中读取,将文件的内容存储到一个2D数组中,给数组中的每个数字分配字符并存储在一个字符数组中,并打印这两个数组。然后,它应该遍历初始数组,确保每个数字与其相邻数字的值相差不超过1,通过将这些数字替换为其相邻数字的平均值来纠正这些错误,像以前一样将字符分配给此已纠正的数组,然后打印两个数组,c++,arrays,C++,Arrays,字符分配如下所示: 0=blank 1=. 2=, 3=_ 4=! 5=+ 6=* 7=# 8=$ 9=& 我已经编写了打开文件并加载数组的代码,但是我不知道从哪里开始。对我来说,执行赋值的一种明显的方法(虽然可能不是最好的方法)是使用for循环遍历数组,并使用一系列if语句检查每个索引处的数字值,并指定适当的符号。我相信有更好的方法来实现这一点 以下是我目前掌握的代码: #include <iostream> #include <fstream> using
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;
}
}
}
#包括
#包括
使用名称空间std;
int main(){
ifstreamprog;
程序打开(“../prog1.dat”);
//如果无法打开文件,请退出
如果(!prog){
cerr大小;
整数**numArray=新整数*[大小];
对于(i=0;i cout在这段代码中,您没有检查与邻居的差异。
此外,它们不需要2个嵌套的for循环,这是一个非常大的开销。您可以在第一个嵌套的for循环中打印numArray
根据你的说法,这是你的第一次编程作业,你已经在使用双指针和嵌套循环,以及你检查文件是否打开的方式。你确定这是你的第一次作业吗?这里的所有内容都是我在教科书或不同的在线教程中读到的,或者是我从其他人那里得到的提示这是我的第一个程序。第一个编程任务我的意思是C++,我在java和Visual Basic中使用了两个类。嗯,作为第一个程序,你最好现在就发现它,而不是以后。是。验证输入。一旦了解动态分配如何工作,就知道如果在现代C++中适当地使用标准库,那么很少需要它。