VCで作った物を~
Posted: 2010年12月23日(木) 18:19
『2つの4×4行列を2次元配列に格納し、それらの積を求めるプログラムを作成せよ。 』
という問題をVCで作ったプログラムが↓なのですが、これを私のノートパソコンに入っている
【Study C Version 2.20a for windows 7/Vista/XP 】でも正常に作動するようにするには、
どうすればいいでしょうか?
#include <stdio.h>
void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4]);
#define N 4
#define COL 128
int main(void)
{
int i;
int a[N][N], b[N][N], c[N][N] = {{0}};
char buf[COL];
/* a[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &a[0], &a[1], &a[2], &a[3]);
}
/* b[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &b[0], &b[1], &b[2], &b[3]);
}
mult_array(&a, &b, &c);
/* c[][]の出力 */
printf("\n");
for (i = 0; i < N; i++)
printf("%d %d %d %d\n", c[0], c[1], c[i][2], c[i][3]);
return 0;
}
void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4])
{
int i, j, k, s;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++) {
s = 0;
for (k = 0; k < N; k++)
s += (*a0)[i][k] * (*a1)[k][j];
(*result)[i][j] = s;
}
}
また、もしこのプログラムがおかしい点があればご指摘お願いします
という問題をVCで作ったプログラムが↓なのですが、これを私のノートパソコンに入っている
【Study C Version 2.20a for windows 7/Vista/XP 】でも正常に作動するようにするには、
どうすればいいでしょうか?
#include <stdio.h>
void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4]);
#define N 4
#define COL 128
int main(void)
{
int i;
int a[N][N], b[N][N], c[N][N] = {{0}};
char buf[COL];
/* a[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &a[0], &a[1], &a[2], &a[3]);
}
/* b[][]の入力 */
for (i = 0; i < N; i++) {
fgets(buf, COL, stdin);
sscanf(buf, "%d %d %d %d", &b[0], &b[1], &b[2], &b[3]);
}
mult_array(&a, &b, &c);
/* c[][]の出力 */
printf("\n");
for (i = 0; i < N; i++)
printf("%d %d %d %d\n", c[0], c[1], c[i][2], c[i][3]);
return 0;
}
void mult_array(int (*a0)[][4], int (*a1)[][4], int (*result)[][4])
{
int i, j, k, s;
for (i = 0; i < N; i++)
for (j = 0; j < N; j++) {
s = 0;
for (k = 0; k < N; k++)
s += (*a0)[i][k] * (*a1)[k][j];
(*result)[i][j] = s;
}
}
また、もしこのプログラムがおかしい点があればご指摘お願いします