这是代码。它应该生成并输出一个2D数组,但由于某种原因,会混淆9x10(90)的值并导致程序崩溃。我附上了截图。
有什么建议吗?另外,如何才能使数字很好地排列成一个整齐的网格?
#include <iostream>
using namespace std;
int main ()
{
int values[10][10];
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
values[i][j]=i*j;
cout<<\t<<values[i][j]<<flush;
}
cout<<endl;
}
return 0;
}
答案 0 :(得分:3)
将其更改为
C
编辑也包括身体。
答案 1 :(得分:2)
基于零的索引,控制台中的等间距值,值从1开始:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int values[10][10];
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
values[i][j] = (i + 1)*(j + 1);
cout << setw(5) << values[i][j];
}
cout << endl;
}
return 0;
}
答案 2 :(得分:1)
数组从0开始,而不是1
using namespace std;
int main ()
{
int values[10][10];
for(int i=1;i<=10;i++)
{
for(int j=1;j<=10;j++)
{
values[i-1][j-1]=i*j; // <<<<<<<<<<
cout<<'\t'<<values[i-1][j-1]<<flush;
}
cout<<endl;
}
return 0;
}
编辑:输出
Success time: 0 memory: 3412 signal:0
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
3 6 9 12 15 18 21 24 27 30
4 8 12 16 20 24 28 32 36 40
5 10 15 20 25 30 35 40 45 50
6 12 18 24 30 36 42 48 54 60
7 14 21 28 35 42 49 56 63 70
8 16 24 32 40 48 56 64 72 80
9 18 27 36 45 54 63 72 81 90
10 20 30 40 50 60 70 80 90 100