如何使用嵌套 for 循环使用 C++ 创建乘法表
How to create multiplication tables using C++ using nested for loops
我正在尝试创建一个像这样的 Multiplication Table,但我遇到了间距问题。有人可以解释我哪里出错了。我在没有尝试创建 table 的情况下让程序运行,但每次我尝试创建 table 时,它都会出错。请帮忙
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i,j;
for(i=2; i <=9; i++)
{
cout << setw(9) << i << " ";
}
for(j = 1; j<=9; j++)
{
cout << setw (9) << (i*j) << " ";
}
printf("%d x %d = %d\n", i, j, i*j);
cout << endl;
}
您需要使用嵌套循环。您可以使用 '\t'
特殊字符插入水平制表符,但如果您稍后决定制作更大的 table,这可能效果不佳。这是您预期输出的解决方案:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, j, k;
for (k = 0; k < 2; k++)
{
for (j = 1; j < 10; j++)
{
for (i = 2 + 4*k; i < 6 + 4*k; i++)
{
cout << i << " x " << j << " = " << i * j << '\t';
}
cout << endl;
}
cout << endl;
}
return 0;
}
这输出:
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45
6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9
6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18
6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27
6 x 4 = 24 7 x 4 = 28 8 x 4 = 32 9 x 4 = 36
6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
6 x 6 = 36 7 x 6 = 42 8 x 6 = 48 9 x 6 = 54
6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63
6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72
6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81
我正在尝试创建一个像这样的 Multiplication Table,但我遇到了间距问题。有人可以解释我哪里出错了。我在没有尝试创建 table 的情况下让程序运行,但每次我尝试创建 table 时,它都会出错。请帮忙
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i,j;
for(i=2; i <=9; i++)
{
cout << setw(9) << i << " ";
}
for(j = 1; j<=9; j++)
{
cout << setw (9) << (i*j) << " ";
}
printf("%d x %d = %d\n", i, j, i*j);
cout << endl;
}
您需要使用嵌套循环。您可以使用 '\t'
特殊字符插入水平制表符,但如果您稍后决定制作更大的 table,这可能效果不佳。这是您预期输出的解决方案:
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int i, j, k;
for (k = 0; k < 2; k++)
{
for (j = 1; j < 10; j++)
{
for (i = 2 + 4*k; i < 6 + 4*k; i++)
{
cout << i << " x " << j << " = " << i * j << '\t';
}
cout << endl;
}
cout << endl;
}
return 0;
}
这输出:
2 x 1 = 2 3 x 1 = 3 4 x 1 = 4 5 x 1 = 5
2 x 2 = 4 3 x 2 = 6 4 x 2 = 8 5 x 2 = 10
2 x 3 = 6 3 x 3 = 9 4 x 3 = 12 5 x 3 = 15
2 x 4 = 8 3 x 4 = 12 4 x 4 = 16 5 x 4 = 20
2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30
2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35
2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40
2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45
6 x 1 = 6 7 x 1 = 7 8 x 1 = 8 9 x 1 = 9
6 x 2 = 12 7 x 2 = 14 8 x 2 = 16 9 x 2 = 18
6 x 3 = 18 7 x 3 = 21 8 x 3 = 24 9 x 3 = 27
6 x 4 = 24 7 x 4 = 28 8 x 4 = 32 9 x 4 = 36
6 x 5 = 30 7 x 5 = 35 8 x 5 = 40 9 x 5 = 45
6 x 6 = 36 7 x 6 = 42 8 x 6 = 48 9 x 6 = 54
6 x 7 = 42 7 x 7 = 49 8 x 7 = 56 9 x 7 = 63
6 x 8 = 48 7 x 8 = 56 8 x 8 = 64 9 x 8 = 72
6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81