生成乘法表的程序行为怪异
program that generates multiplication tables acting weird
这是代码。它应该生成并输出一个二维数组,但由于某种原因,弄乱了 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;
}
改为
for( int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
values[i][j] = (i + 1)*(j + 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
从零开始的索引,控制台中的等距值,值从 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;
}
这是代码。它应该生成并输出一个二维数组,但由于某种原因,弄乱了 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;
}
改为
for( int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
values[i][j] = (i + 1)*(j + 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
从零开始的索引,控制台中的等距值,值从 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;
}