C言語:5×4行列と4×3行列の積を求めるプログラム

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Robin1121

C言語:5×4行列と4×3行列の積を求めるプログラム

#1

投稿記事 by Robin1121 » 11年前

今、件名にも書きましたが5×4行列と4×3行列の積を求めさせるプログラムを作っています。
一応、コンパイルは成功し入力もできるのですが計算結果がすべて0となってしまいます。
直すべき点はどこか教えてください。
OSはwindows7 ソフトはtera termを使っています。
まだ2か月しかC言語をやっておらず、学校の授業と教科書で勉強しています。

コード:

#include<stdio.h>
#define M 5
#define N 3
#define L 4
int main(void)
{
  int i;
  int j;
  int k;
  int A[M][L];
  int B[L][N];
  int C[M][N];

  printf("A (5×4)?\n");
  for(i=0;i<M;i++)
    {
      for(j=0;j<L;j++)
        {
          scanf("%f",&A[i][j]);
        }
    }

  printf("B (4×3)?\n");
   for(i=0;i<L;i++)
    {
      for(j=0;j<N;j++)
        {
          scanf("%f",&B[i][j]);
        }
    }

   printf("AB=\n");
 for(i=0;i<M;i++)
   {
     for(j=0;j<N;j++)
       {
         C[i][j]=0;
         for(k=0;k<L;k++)
           {
             C[i][j]+=A[i][k]*B[k][j];
           }
         printf("%5d",C[i][j]);
       }
     printf("\n");
   }
 return 0;
}

アバター
usao
記事: 1889
登録日時: 11年前

Re: C言語:5×4行列と4×3行列の積を求めるプログラム

#2

投稿記事 by usao » 11年前

まず,積を求める前段階で,2つの行列A,Bに意図した値が入っていることを
printf()なりで表示して確認してみてはどうでしょうか?

ぱっと見,提示コードでは,A,Bはintなのに対して,
scanf( "%f"
とされているのが怪しいです.

Robin1121

Re: C言語:5×4行列と4×3行列の積を求めるプログラム

#3

投稿記事 by Robin1121 » 11年前

%fを%dに直したらできました!
ありがとうございます!

閉鎖

“C言語何でも質問掲示板” へ戻る