禹丞 發問時間: 電腦與網際網路程式設計 · 1 0 年前

想請問一下有關於二維陣列編寫九九乘法的疑問(C++)

請懂C++的大大幫我看一下應該要怎麼用二維陣列編寫九九乘法表

#include <iostream>

int A[9][9];

int main()

{

using namespace std;

int i, j;

for (i = 1; i <= 9; i++)

{

for (j = 1; j <= 9 ; j++)

{

A[i][j] = j * i;

cout << i << " x " << j << " = " << A[i][j] << "\t";

cout << endl;

}

}

system("pause");

return 0;

}

以上的是我自己寫的

可是執行後發現沒辦法變成9*9的表現方式

而我還有寫另外一種方式

可是也不知道錯在哪邊

如果大大有更好的寫法請PO給我看看~!!

可以的話請使用cout來寫,

小弟我是新手...才接觸C++幾天而已,

不是很了解print之類的輸出方式...

已更新項目:

阿 不好意思...

打出來符號都變亂碼了...

2 個已更新項目:

< 原來是代表 <

&gt 是代表 >

" 是代表 "

麻煩大大幫我看一下^^"

謝謝!!

3 個已更新項目:

魷魚大大,您所寫的不是我要的九九乘法表耶@@"

我想要的是一行一行列出來1~9的九九乘法表

1X1= 1 2X1= 2 3X1= 3 4X1= 4 5X1= 5 ......

1X2= 2 2X2= 4 3X2= 6 4X2= 8 5X2=10 ......

1X3= 3 2X3= 6 3X3= 9 4X3=12 5X3=15 ......

......

依此類推

3 個解答

評分
  • 魷魚
    Lv 5
    1 0 年前

    #include

    #include

    int main()

    {

    int i,j,m,n,k;

    printf("請輸入兩個數:");

    while(scanf("%d%d",&m,&n)>1){

    for(i=1;i<=m;i++)

    {

    for(j=1;j<=n;j++)

    {

    k=i*j;

    printf("%d*%d=%3d ",i,j,k);

    }

    printf(" \\n");

    }

    }

    system("pause");

    return 0;

    }

    2009-10-16 13:32:52 補充:

    那些錯的我直接砍掉了。

    反正我不是在賺那些點的....

    有解決問題的話就好,沒有的話那個???大大也很強。

    應該能回答你問題。

    2009-10-16 13:34:00 補充:

    又忘了說了008那個,已經修改了。

    看看有沒有符合你要的。

  • 1 0 年前

    我有改過了,

    可是反而數字會出不來,

    我在想是我更之前的語法是不是有錯誤...

    2009-10-15 18:18:50 補充:

    恩,我照大大所寫的輸入後發現,

    雖然有排列但是他之間都只有一個空格來區分,

    也就變成下面這種樣子

    1X1=1 2X1=2 3X1=3 4X1=4 5X1=5 6X1=6 7X1=7 8X1=8

    1X2=2 2X2=4 3X2=6 4X2=8 5X2=10 6X2=12 7X2=14 8X2=16

    1X3=3 2X3=6 3X3=9 4X3=12 5X3=15 6X3=18 7X3=21 8X3=24

    .....

    以下依此類推

    也就是變成沒有整齊的排列在一起

    我自己試著修改後,變得更加奇怪了...

    使用printf後是有做出來我要的效果,

    但是我還沒學到printf,

    所以不瞭解意思...

  • re
    Lv 4
    1 0 年前

    C/C++的陣列是從0開始到n-1結束的

    例如:

    int a[9];

    a[0] ~ a[8]才是合法存取的範圍

    所以可以把程式改成

    A[10][10],這是照你習慣的改法

    不過仍然建議習慣從0開始的陣列

    2009-10-15 02:18:59 補充:

    另外要稍微注意一下

    cout << endl;

    是在哪個迴圈裡面

    這是控制換行的

    2009-10-15 02:24:12 補充:

    for (i = 1; i <= 9; i++)

    {

    for (j = 1; j <= 9 ; j++)

    {

    A[i][j] = j * i;

    cout << i << "x" << j << "=" << A[i][j] << " ";

    }

    cout << endl;

    }

    這樣試試?

    不過這是還沒仔細排版過的

    2009-10-15 02:27:06 補充:

    for (i = 1; i <= 9; i++)

    {

    for (j = 1; j <= 9 ; j++)

    {

    printf("%dx%d=%-2d ",j,i,j*i);

    }

    printf("\\n");

    }

    這是有排版過的

    我也直接不使用陣列了…

    2009-10-15 02:29:45 補充:

    cout << i << "x" << j << "=" << A[i][j] << " ";

    j 跟 i 互換才對…

還有問題?馬上發問,尋求解答。