生成一个随机的2D数组
Generating a random 2D array
我想做一个简单的程序,用户可以在其中输入" I x y",其中x和y是整数,数组的维度。我已经创建了一个类myarray来生成矩阵。然而,程序的输出是空格和n。有人知道我该怎么做吗?
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
class myarray
{
char** grid;
int dimX,dimY;
public:
myarray(){grid=0;}
myarray(int m,int n) {grid = new char* [m]; for(int i=0;i<m;i++) {grid[i]=new char [n];} dimX=m; dimY=n;}
~myarray(){for(int i = 0; i < dimX; ++i) {delete[] grid[i];} delete[] grid;}
char** fetcharray(){return grid;}
void display_grid();
void randomize_grid(){for(int i=0;i<dimX;i++) for(int j=0;j<dimY;j++) grid[i][j]=rand()%10;}
};
int main()
{
srand(time(NULL));
bool check(true);
while(check)
{
char a; //a-firstinp;
int m,n; //m,n-grid size
cin>>a;
switch(a)
{
case 'i':
case 'I': {cin>>m>>n;
myarray c(m,n);
c.randomize_grid();
c.display_grid();
break;}
default: {cout<<"Invalid input! Possible commands: i,c,l,v,h,k,f,s,x! Try again: n";
break;}
}
}
}
void myarray::display_grid()
{
for(int i=0;i<dimX;i++)
{
cout<<"n";
for(int j=0;j<dimY;j++)
cout<<grid[i][j];
}
}
提前感谢!
您的网格类型为char
和ostreams
,假设您正在打印字符而不是数字。最简单的修复方法是使用static_cast<int>(grid[i][j])
您正在尝试输出char
,以便获得ascii表示。试试这个
cout<<(int)grid[i][j];
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 2D数组来自文本输入,中间有空格
- 将值指定给向量(2D)的向量中的某个位置
- 为什么 Serial.println(<char[]>);返回随机字符?
- 字符串-C++后显示的随机字符
- 如何使用用户输入在C++中正确填充2D数组
- 循环中的随机函数
- 在c++构造函数中使用随机字符串生成器
- 按列随机播放 2D 矢量
- 为什么我的 2d 数组的第二行从 RAM 中获取随机值?
- 分割故障:从2D矢量中随机删除元素
- 使用随机值初始化 2D 向量
- C 2D char阵列有时会在随机位置复制数据
- 在C++中按行随机播放 2D 数组
- C++ 中曲线下的 2D 随机点
- 在数组中随机生成固定范围的数字,在该 2D 数组中没有重复行
- 将随机值分配给2d数组c++
- 将多维数组随机化(随机播放)为另一个 2D 数组
- 如何将随机字符串从2d数组添加到1d数组[c++]
- 生成一个随机的2D数组