C言語についての質問です。 これをC言語で表すプログラムが分かりません。コードを教えていただきたいです。

画像

C言語関連 | プログラミング69閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

0

その他の回答(1件)

0

再帰を使うと簡単かもしれない。 でもないか。 #define _CRT_SECURE_NO_WARNINGS // Visual Studio only #include <stdio.h> void func(double A[], double B[], int n) {     if (n == 0) {         B[0] = 1;         B[1] = 0;         B[2] = 0;         B[3] = 1;     } else {         func(A, B, n - 1);         double T[4]; /* / B0  B1 | * / A0  A1 | | B2  B3 /   | A2  A3 / = / B0*A0+B1*A2 B0*A1+B1*A3 |   | B2*A0+B3*A2 B2*A1+B3*A3 / */         T[0] = B[0]*A[0] + B[1]*A[2];         T[1] = B[0]*A[1] + B[1]*A[3];         T[2] = B[2]*A[0] + B[3]*A[2];         T[3] = B[2]*A[1] + B[3]*A[3];         B[0] = T[0];         B[1] = T[1];         B[2] = T[2];         B[3] = T[3];     } } void dsp(const double a[]) {     printf("%6.2f %6.2f\n"  , a[0], a[1]);     printf("%6.2f %6.2f\n\n", a[2], a[3]); } int main(void) {     double A[4], B[4];     printf("行列Aの1行目> ");     scanf("%lf%lf", &A[0], &A[1]);     printf("行列Aの2行目> ");     scanf("%lf%lf", &A[2], &A[3]);     int n;     printf("n> ");     scanf("%d", &n);     func(A, B, n);     dsp(A);     dsp(B); }