二维数组上的乘法表[关闭]

Posted

技术标签:

【中文标题】二维数组上的乘法表[关闭]【英文标题】:multiplication table on two dimensional array [closed] 【发布时间】:2022-01-24 00:54:12 【问题描述】:

我在二维数组上做了一个乘法表,但我也想更改此代码并在我输入的 5 个值上执行它。

我会输入:

   2.5 3.0 4.6 6.3 8.1
2.5
3.0
4.6
6.3
8.1

它会乘以 2.5 * 2.5 等等。

int tab[5][5];
    for(int i=1; i<=5; i++)
    
        for(int y=1; y<=5; y++)
        
            tab[i-1][y-1]=i*y;
            cout << tab[i-1][y-1] << " | ";
        
        cout << endl;
    

关于如何做到这一点的任何提示?

【问题讨论】:

您需要将值存储在数组/向量中,然后循环遍历它。 【参考方案1】:

好的,现在假设这个 2D 数组始终是正方形的,并且列值与行值相同(就像您在示例中显示的那样)。

您需要存储这些我们想要相乘的值。 我们称该数组为x

您不必对当前代码进行太多更改,但我们想要x[i] * x[y] 而不是i*y注意:你不能从 1 开始循环,从 0 开始 iy。此外,在索引 tab[i][y]

时,您需要去掉“-1”

哦,我差点忘了。如果您希望使用小数,则不能使用int。请改用float。您可能需要使用我将在下面展示的一些技巧将它们四舍五入到小数点后 1:

float tab[5][5];
float x[5]; // You will have to give x the 5 values that you want to multiply
for(int i=0; i<=4; i++)

    for(int y=0; y<=4; y++)
    
        tab[i][y] = x[i] * x[y]; // This can have many decimals!
        tab[i][y] = roundf(tab[i][y] * 10) / 10; // This will multiply with 10 to shift the number 1 decimal place, then we round it to zero decimals, then we divide it with 10, to add 1 decimal. You can change to 100 if you want 2 decimals
        cout << tab[i][y] << " | ";
    
    cout << endl;

希望对你有帮助! ^_^

【讨论】:

谢谢你的帮助,我没有在我的代码中使用我创建的第二个数组.. 但现在我知道我做错了什么

以上是关于二维数组上的乘法表[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

二维数据练习--矩阵的加法和乘法

尝试获取用户输入以生成二维数组乘法表

九九乘法表

BZOJ 2738 矩阵乘法(整体二分+二维树状数组)

二维数组打印乘法表,三角形,输入三个数,输出最大值

[BZOJ2738]矩阵乘法 整体二分+二维树状数组