#include <stdio.h>
float func_add(float, float);
int main(){
/*変数の宣言*/
int n,m;
n=2;
m=3;
/*配列変数の宣言*/
float a[n][m],b[n][m],c[n][m];
/*カウンタ用変数の宣言*/
int i,j;
a[0][0]=2.3;a[0][1]=0.2;a[0][2]=0.1;
a[1][0]=-0.3;a[1][1]=0.0;a[1][2]=-0.5;
b[0][0]=-1.0;b[0][1]=-0.1;b[0][2]=1.8;
b[1][0]=0.0;b[1][1]=2.2;b[1][2]=2.5;
/*行列の和を計算*/
for(i=0; i<n; i=i+1){
for(j=0; j<m; j=j+1){
c[i][j]=func_add(a[i][j], b[i][j]);
}
}
/*行列aの表示*/
printf("a=\n");
for(i=0; i<n; i=i+1){
printf("[");
for(j=0; j<m; j=j+1){
printf("%5.2f",a[i][j]);
}
printf("]\n");
}
printf("\n");
/*行列bの表示*/
printf("b=\n");
for(i=0; i<n; i=i+1){
printf("[");
for(j=0; j<m; j=j+1){
printf("%5.2f",b[i][j]);
}
printf("]\n");
}
printf("\n");
/*行列cの表示*/
printf("c=a+b=\n");
for(i=0; i<n; i=i+1){
printf("[");
for(j=0; j<m; j=j+1){
printf("%5.2f",c[i][j]);
}
printf("]\n");
}
printf("\n");
return 0;
}
/*関数func_add*/
/*変数の宣言*/
int o,p;
float func_add(float x[o][p], float y[o][p]){
float z[o][p];
o=2;
p=3;
/*カウンタ用変数の宣言*/
int i,j;
/*行列の和を計算*/
for(i=0; i<o; i=i+1){
for(j=0; j<p; j=j+1){
z[i][j]=x[i][j]+y[i][j];
}
}
return z[o][p];
}
main.c:76:11: error: conflicting types for ‘func_add’
float func_add(float x[o][p], float y[o][p]){
^~~~~~~~
main.c:3:7: note: previous declaration of ‘func_add’ was here
float func_add(float, float);
^~~~~~~~
となります。
プロトタイプ宣言をしているはずなのにどうしてこのようなエラーが起こるのかがどうしてもわかりません。コンパイラはonline GDBを使用しています