回答編集履歴
1
ポインタを使わないといけない旨を書いていましたが、全然ポインタや構造体などを使わなくてもいけました。
answer
CHANGED
@@ -206,4 +206,105 @@
|
|
206
206
|
printf(" |\n");
|
207
207
|
}
|
208
208
|
}
|
209
|
+
```
|
210
|
+
### 説明(5月18日14時30分追記)
|
211
|
+
|
212
|
+
ポインタを使わないといけないと書きましたが、そんなことありませんでした。
|
213
|
+
1要素ずつ計算する関数を作れば良いだけでした。
|
214
|
+
|
215
|
+
### 参考(追記についてのコード)
|
216
|
+
```C
|
217
|
+
#include<stdio.h>
|
218
|
+
|
219
|
+
int jisu;
|
220
|
+
|
221
|
+
int multij(int fir[][jisu],int sec[][jisu],int i,int j);
|
222
|
+
void disp(int a[][jisu],int b[][jisu],int c[][jisu]);
|
223
|
+
|
224
|
+
int main(void)
|
225
|
+
{
|
226
|
+
do
|
227
|
+
{
|
228
|
+
printf("Enter the dimension.\n");
|
229
|
+
scanf("%d",&jisu);
|
230
|
+
} while(jisu < 2 || jisu > 6);
|
231
|
+
|
232
|
+
int a[jisu][jisu];
|
233
|
+
int b[jisu][jisu];
|
234
|
+
int c[jisu][jisu];
|
235
|
+
printf("\ndefine matrix A.");
|
236
|
+
for(int m=0;m<jisu;m++)
|
237
|
+
{
|
238
|
+
for(int n=0;n<jisu;n++)
|
239
|
+
{
|
240
|
+
printf("\nEnter a[%d][%d]\n",m,n);
|
241
|
+
scanf("%d", &a[m][n]);
|
242
|
+
}
|
243
|
+
}
|
244
|
+
|
245
|
+
printf("\ndefine matrix B.");
|
246
|
+
for(int m=0;m<jisu;m++)
|
247
|
+
{
|
248
|
+
for(int n=0;n<jisu;n++)
|
249
|
+
{
|
250
|
+
printf("\nEnter b[%d][%d]\n",m,n);
|
251
|
+
scanf("%d", &b[m][n]);
|
252
|
+
}
|
253
|
+
}
|
254
|
+
|
255
|
+
for(int m=0;m<jisu;m++)
|
256
|
+
{
|
257
|
+
for(int n=0;n<jisu;n++)
|
258
|
+
{
|
259
|
+
c[m][n] = multij(a,b,m,n);
|
260
|
+
}
|
261
|
+
}
|
262
|
+
disp(a,b,c);
|
263
|
+
}
|
264
|
+
|
265
|
+
int multij(int fir[][jisu],int sec[][jisu],int i,int j)
|
266
|
+
{
|
267
|
+
int valueij = 0;
|
268
|
+
for(int n=0;n<jisu;n++)
|
269
|
+
{
|
270
|
+
valueij += fir[i][n] * sec[n][j];
|
271
|
+
}
|
272
|
+
|
273
|
+
return valueij;
|
274
|
+
}
|
275
|
+
|
276
|
+
void disp(int a[][jisu],int b[][jisu],int c[][jisu])
|
277
|
+
{
|
278
|
+
printf("matrix A\n");
|
279
|
+
for(int i=0;i<jisu;i++)
|
280
|
+
{
|
281
|
+
printf("|");
|
282
|
+
for(int j=0;j<jisu;j++)
|
283
|
+
{
|
284
|
+
printf("%6d",a[i][j]);
|
285
|
+
}
|
286
|
+
printf(" |\n");
|
287
|
+
}
|
288
|
+
|
289
|
+
printf("matrix B\n");
|
290
|
+
for(int i=0;i<jisu;i++)
|
291
|
+
{
|
292
|
+
printf("|");
|
293
|
+
for(int j=0;j<jisu;j++)
|
294
|
+
{
|
295
|
+
printf("%6d",b[i][j]);
|
296
|
+
}
|
297
|
+
printf(" |\n");
|
298
|
+
}
|
299
|
+
printf("multiply A by B\n");
|
300
|
+
for(int i=0;i<jisu;i++)
|
301
|
+
{
|
302
|
+
printf("|");
|
303
|
+
for(int j=0;j<jisu;j++)
|
304
|
+
{
|
305
|
+
printf("%6d",c[i][j]);
|
306
|
+
}
|
307
|
+
printf(" |\n");
|
308
|
+
}
|
309
|
+
}
|
209
310
|
```
|