数组填充了不正确的值
Array filling up with incorrect values
我正在创建一个依赖于一组 2d 数组的程序。在我目前正在处理的部分,用户首先输入所需的(正方形边(大小,程序应该初始化所有数组并用 0 填充它们,除了 0 行和列,标签是其中。生成的数组必须看起来像这样:
0 1 2 3 4 ...
1 0 0 0 0 ...
2 0 0 0 0 ...
3 0 0 0 0 ...
4 0 0 0 0 ...
...
我编写的代码看起来不错,但是一旦实现了标签,整个内部(标签不受影响(开始填充一些随机数,每 2 个字段出现 0。这段代码目前是独立工作的,但我会将一些变量移到全局范围内以连接这些部分:
int show_Board(int size){
size++;
int board[size][size];
int i=0, x=0;
for (i=0; i<size; i++){ //filling up the array
for (x=0; x<size; x++){
board[i][x]=0;
}
for (i=0; i<=size; i++){ //filling in labels on the borders
board[i][0]=i; // only row 0 breaks if this loop is disabled
for (x=0; x<=size; x++){
board[0][x]=x;
}
}
}
for (i=0; i<size; i++){ //displaying the result
for (x=0; x<size; x++){
cout <<" "<< board[i][x];
}
cout << endl;
}
}
int main(){
show_Board(20);
}
我的问题是如何使数组正确填充(即标签和 0(?
for (int i = 0; i < size; i++){
for (x=0; x < size; x++){
board[i][x]=0;
}
for (int i = 0; i <= size; i++){
board[i][0]=i;
for (int x = 0; x <= size; x++){
board[0][x]=x;
}
}
}
这是代码中的一个片段,只是稍微清理了一下。请注意,您在错误的位置关闭了第一个 for 循环,因此它实际上具有用于在其中设置标签的循环。不幸的是,这是编写丑陋代码的结果。这段代码不仅写得不好,而且它所做的工作比它需要的要多。更容易看到错误,修复和优化好的代码,所以这是你绝对应该研究的事情。
编辑:您在第一个循环中也使用 i <size,但在第二个循环中><= size,这将导致循环额外运行 1 次。我不认为这是你真正想要的。
我不确定为什么你在函数的开头增加大小,因为这会创建一个比用户要求的更大的正方形 1。
这是我的解决方案:
#include <iostream>
int show_board(int size) {
// size++;
int board[size][size];
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
// Set board tile to 0.
board[i][j] = 0;
}
// Set vertical label.
board[i][0] = i;
// Set horizontal label.
board[0][i] = i;
}
// Display board
for (int i = 0; i < size; ++i) {
for (int j = 0; j < size; ++j) {
std::cout << board[i][j] << " ";
}
std::cout << std::endl;
}
}
int main() {
show_board(5);
return 0;
}
相关文章:
- 如何使用用户输入在C++中正确填充2D数组
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 如何正确填充在堆上分配的二维数组?
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 数组填充了不正确的值
- 数组的第一个字符填充了不正确的数据C++
- 如何在创建后正确填充对象而不修改类声明
- 如何删除空字段(或填充了不正确的数据)
- C++正在填充不正确的分配
- 对通过外部文件填充的数组进行不正确的排序和/或搜索