ここから本文です

c言語です。 2 × 2 行列 A, B の積の演算を考える。

ook********さん

2020/7/202:37:59

c言語です。
2 × 2 行列 A, B の積の演算を考える。

double 型の 2 次元配列 A[2][2], B[2][2] の各要素 にキーボードから数値を代入し、積 AB の値を計算し表示するプログラムを教えてください

閲覧数:
62
回答数:
2
お礼:
25枚

違反報告

回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

2020/7/314:57:51

#define _CRT_SECURE_NO_WARNINGS // Visual Studio only
#include <stdio.h>

// 2x2行列Aと2x2行列Bの積を計算して2x2行列ABへ代入します。
void product(double AB[2][2], const double A[2][2], const double B[2][2]) {
    AB[0][0] = A[0][0] * B[0][0] + A[0][1] * B[1][0];
    AB[0][1] = A[0][0] * B[0][1] + A[0][1] * B[1][1];
    AB[1][0] = A[1][0] * B[0][0] + A[1][1] * B[1][0];
    AB[1][1] = A[1][0] * B[0][1] + A[1][1] * B[1][1];
}
int main(void) {
    double A[2][2], B[2][2], AB[2][2];

    printf("2x2行列Aの要素(浮動小数点数値)を4個入力してください\n");
    printf("数値はスペースまたは改行で区切ってください\n");
    scanf("%lf%lf%lf%lf", &A[0][0], &A[0][1], &A[1][0], &A[1][1]);

    printf("2x2行列Bの要素(浮動小数点数値)を4個入力してください\n");
    printf("数値はスペースまたは改行で区切ってください\n");
    scanf("%lf%lf%lf%lf", &B[0][0], &B[0][1], &B[1][0], &B[1][1]);

    product(AB, A, B);

    printf("行列A =\n");
    printf("%6.2f %6.2f\n%6.2f %6.2f\n\n", A[0][0], A[0][1], A[1][0], A[1][1]);
    printf("行列B =\n");
    printf("%6.2f %6.2f\n%6.2f %6.2f\n\n", B[0][0], B[0][1], B[1][0], B[1][1]);
    printf("行列AB = A x B =\n");
    printf("%6.2f %6.2f\n%6.2f %6.2f\n\n", AB[0][0], AB[0][1], AB[1][0], AB[1][1]);
}

プロフィール画像

カテゴリマスター

kapuseruさん

2020/7/209:32:36

行列の積は3重ループになりますね.

#include <stdio.h>
#include <string.h>

int i,j,k;
int main(void){
int a[2][2];
int b[2][2];

for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("Aの(%d %d)要素:", i+1, j+1);
scanf("%d", &a[i][j]);
}
}

for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("Bの(%d %d)要素:", i+1, j+1);
scanf("%d", &b[i][j]);
}
}

int ab[i][j];
for(i=0;i<2;i++){
for(j=0;j<2;j++){
ab[i][j] = 0;
for(k=0;k<2;k++){
ab[i][j] += a[i][k] * b[k][j];
}
}
}

printf("AB: [\n");
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("%d ", ab[i][j]);
}
printf("\n");
}
printf("]\n");


return 0;

}

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる