Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

矩陣相加的基本問題

/*

ch6.1矩陣相加

*/

#include<stdio.h>

#include <stdlib.h>

#include <time.h>

int main()

{

int x,y,z,m,n;

printf("輸入m行\n");

scanf("%d",&m);

printf("輸入n列\n");

scanf("%d",&n);

int a[m][n];

int b[m][n];

int c[m][n];

printf("請輸入值進入a矩陣\n");

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

{

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

{

scanf("%d",&a[x][y]);

}

}

printf("請輸入值進入b矩陣\n");

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

{

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

{

scanf("%d",&b[x][y]);

}

}

printf("a矩陣\n");

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

{

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

{

printf("%d ",a[x][y]);

}

printf("\n");

}

printf("b矩陣\n");

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

{

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

{

printf("%d ",b[x][y]);

}

printf("\n");

}

printf("\na和b矩陣相加結果\n");

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

{

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

{

c[x][y]=0;

c[x][y]=a[x][y]+b[x][y];

printf("%d ",c[x][y]);

}

printf("\n");

}

system("pause");

}

已更新項目:

請問這樣子寫對嗎?

2 個已更新項目:

輸入m列,n行後進行兩個m*n的矩陣相加

3 個已更新項目:

那請問要怎麼改才正確?簡單明瞭的

4 個已更新項目:

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

{

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

{

scanf("%d",&a[x][y]);

}

}

才對吧

5 個已更新項目:

int a[m][n];

int b[m][n];

int c[m][n];

應該只錯在陣列不能用未知數變數宣告?

2 個解答

評分
  • 阿風
    Lv 5
    9 年前
    最佳解答

    我只看到宣告部分而已

    陣列宣告不能這樣...

    就算編譯成功 也不代表沒有錯誤

    2012-01-16 17:47:47 補充:

    除了 陣列不能這樣宣告以外,就算編譯成功,

    也不代表正確。

    還有程式碼稍嫌長了點,沒什麼錯誤。

    照你程式碼修改後 :

    #include <stdio.h>

    #include <stdlib.h>

    int main()

    {

    int a[50][50];

    int b[50][50];

    int c[50][50];

    int x,y,m,n;

    printf("m : "); scanf("%d",&m);

    printf("n : "); scanf("%d",&n);

    printf("a 矩陣 :\n");

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

    {

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

    {

    scanf("%d",&a[x][y]);

    }

    }

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

    {

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

    {

    printf("%d",a[x][y]);

    }

    printf("\n");

    }

    printf("b 矩陣 :\n");

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

    {

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

    {

    scanf("%d",&b[x][y]);

    }

    }

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

    {

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

    {

    printf("%d",b[x][y]);

    }

    printf("\n");

    }

    printf("a 矩陣 + b 矩陣 : \n");

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

    {

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

    {

    c[x][y] = a[x][y] + b[x][y];

    printf("%d",c[x][y]);

    }

    printf("\n");

    }

    system("pause");

    return 0;

    }

    2012-01-16 17:50:31 補充:

    阿阿阿

    我打錯了 (( 炸

    只要是 y 迴圈

    y < = n ...

    2012-01-16 17:53:57 補充:

    忘了說...

    這不是好方法 ㄎ

  • 9 年前

    我下一篇有回答囉~~

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