【发布时间】:2019-11-13 16:24:05
【问题描述】:
我绝对是 cpp 的新手,我尝试编写一个简单的二维数组矩阵。 这就是我要说的:
#include <iostream>
#include <string>
using namespace std;
void printTable()
{
int tabelle [10][10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int i, j;
for (i = 0; i < 10; i++)
{
for (j = 0; j < 10; j++)
{
printf("%d ", tabelle[i][j]);
}
printf("\n");
}
}
int main(int argc, char* argv[])
{
printTable();
return 0;
}
它是这样的:
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
它应该是这样的:
1 2 3 4 5 6 7 8 9 10
2 0 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0 0
9 0 0 0 0 0 0 0 0 0
10 0 0 0 0 0 0 0 0 0
感谢任何建议:D
【问题讨论】:
-
您需要正确初始化数组。只有数组的前 10 个元素由您初始化(1 到 10),其余的由编译器初始化为零。看看这个具体情况是这样的: int tabelle [10][10] = { {{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} };我在您的初始化周围添加了大括号,现在更容易将其视为 2d 数组的第一行,其余为零。