新しく質問する

2×2行列の掛け算をするプログラム

役に立った:0件
  • 質問者:sin11
  • 投稿日時:2002/11/23 20:21
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

タイトルのプログラムなんですが、授業で例題としてソース渡されたんですが、学校のUNIXのやつだと動くんですけど、自分の使ってるVC++だと動かないんですよ。
その理由と、VC++で動くようにするにはどうしたらいいかおしえてください。
ソースは、

#include<stdio.h>

void get_data();
void write_data();
void product();

main()
{
double a[2][2],b[2][2],c[2][2];

get_data(a);
get_data(b);
write_data(a);
write_data(b);
product(a,b,c);
write_data(c);
}

void get_data(double p[][2])
{
int i,j;

printf("Input elements\n");
for(i=0;i<2;i++)
for(j=0;j<2;j++){
printf("(%d,%d)-th element=",i,j);
scanf("%lf",&p[i][j]);
}
}

void write_data(double p[][2])
{
int i,j;

printf("\n");
for(i=0;i<2;i++){
for(j=0;j<2;j++)
printf("(%d,%d)-th element=%lf\t",i,j,p[i][j]);
printf("\n");
}
printf("\n");
}

void product(double u[][2],double v[][2],double w[][2])
{
int i,j,k;

for(i=0;i<2;i++)
for(j=0;j<2;j++){
w[i][j]=0.0;
for(k=0;k<2;k++)
w[i][j]+=u[i][k]*v[k][j];
}
}

です。
よろしくおねがいします。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:e101tre
  • 回答日時:2002/11/23 20:49

最初のほうのプロトタイプ宣言と実際の関数の定義が異なっているために VC++ でコンパイルエラーになるのだと思います。

void get_data();
void write_data();
void product();

この 3行を

void get_data(double p[][2]);
void write_data(double p[][2]);
void product(double u[][2],double v[][2],double w[][2]);

のように修正すればコンパイルができるようになると思います。

通報する

この回答へのお礼

かいとうありがとうございます。
コンパイルできました。ほんとうっかりしてたって感じでした。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter