質問編集履歴
3
質問文の編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
```
|
1
|
-
|
2
|
+
4×4の行列計算ができるプログラムを書くのが目的です。
|
2
|
-
関数mulにq_aとq_bを引き渡す部分で「型"double(*)[4]"の引数は型"double *"のパラメーターと互換性がありません」とエラーが出ます。
|
3
|
+
関数mulにq_aとq_bを引き渡す部分で「型"double(*)[4]"の引数は型"double *"のパラメーターと互換性がありません」とエラーが出ます。
|
4
|
+
どのようにすればうまく引き渡せますか。
|
3
5
|
|
4
6
|
よろしくお願いします。
|
5
7
|
|
2
見やすさの変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
+
```4×4の行列計算ができるプログラムを書くのが目的です。
|
2
|
+
関数mulにq_aとq_bを引き渡す部分で「型"double(*)[4]"の引数は型"double *"のパラメーターと互換性がありません」とエラーが出ます。どのようにすればうまく引き渡せますか。
|
3
|
+
|
4
|
+
よろしくお願いします。
|
5
|
+
|
6
|
+
コード
|
1
|
-
#include<stdio.h>
|
7
|
+
```#include<stdio.h>
|
2
8
|
#define I 4
|
3
9
|
#define J 4
|
4
10
|
#define K 4
|
@@ -24,11 +30,5 @@
|
|
24
30
|
for (i = 0; i < I; i++) {...}
|
25
31
|
//計算
|
26
32
|
return 0;
|
27
|
-
|
33
|
+
}
|
28
34
|
|
29
|
-
4×4の行列計算ができるプログラムを書くのが目的です。
|
30
|
-
関数mulにq_aとq_bを引き渡す部分で「型"double(*)[4]"の引数は型"double *"のパラメーターと互換性がありません」とエラーが出ます。どのようにすればうまく引き渡せますか。
|
31
|
-
|
32
|
-
よろしくお願いします。
|
33
|
-
|
34
|
-
|
1
簡潔化
test
CHANGED
File without changes
|
test
CHANGED
@@ -3,54 +3,32 @@
|
|
3
3
|
#define J 4
|
4
4
|
#define K 4
|
5
5
|
|
6
|
-
double mul(double* pA, double* pB);
|
6
|
+
double multi(double* pA, double* pB);
|
7
7
|
|
8
8
|
int main(void) {
|
9
9
|
|
10
|
-
double q
|
10
|
+
double q_a[I][J];
|
11
|
-
double q
|
11
|
+
double q_b[J][K];
|
12
12
|
int i,j,k;
|
13
13
|
|
14
|
-
printf("1つ目の行列の値を入力してください。\n");
|
15
|
-
for (i = 0; i < I; i++) {
|
14
|
+
for (i = 0; i < I; i++) {...}
|
16
|
-
|
15
|
+
for (j = 0; j < J; j++) {...}
|
17
|
-
scanf_s("%lf", &que_a[i][j]);
|
18
|
-
}
|
19
|
-
}
|
20
16
|
|
21
|
-
printf("2つ目の行列の値を入力してください。\n");
|
22
|
-
for (j = 0; j < J; j++) {
|
23
|
-
for (k = 0; k < K; k++) {
|
24
|
-
scanf_s("%lf", &que_b[j][k]);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
|
28
|
-
mul(q
|
17
|
+
multi(q_a, q_b);
|
29
18
|
|
30
19
|
return 0;
|
31
20
|
}
|
32
21
|
|
33
|
-
double mul(double *pA, double *pB)
|
22
|
+
double multi(double *pA, double *pB)
|
34
23
|
{
|
35
|
-
double c[I][K];
|
36
|
-
int i, j, k;
|
37
|
-
|
38
|
-
for (i = 0; i < I; i++) {
|
24
|
+
for (i = 0; i < I; i++) {...}
|
39
|
-
|
25
|
+
//計算
|
40
|
-
for (j = 0; j < J; j++) {
|
41
|
-
|
42
|
-
c[i][k] = pA[i][j] * pB[j][k];
|
43
|
-
printf("%f\n", c[i][k]);
|
44
|
-
|
45
|
-
}
|
46
|
-
}
|
47
|
-
}
|
48
26
|
return 0;
|
49
27
|
}
|
50
28
|
|
51
29
|
4×4の行列計算ができるプログラムを書くのが目的です。
|
52
|
-
関数mulにq
|
30
|
+
関数mulにq_aとq_bを引き渡す部分で「型"double(*)[4]"の引数は型"double *"のパラメーターと互換性がありません」とエラーが出ます。どのようにすればうまく引き渡せますか。
|
53
|
-
|
31
|
+
|
54
32
|
よろしくお願いします。
|
55
33
|
|
56
34
|
|