#include <stdio.h>
typedef struct Three{
double a;
double b;
double c;
} Three;
Three Scan(void);
double CULC(Three t);
int main(void)
{
Three t;
double result;
t.a = Scan();
t.b = Scan();
t.c = Scan();
result = CULC(t);
printf("3つの数の積は%fです\n", result);
return 0;
}
//数の入力
Three Scan(void)
{
Three t;
printf("3つの数を入力:\n");
scanf("%lf %lf %lf", &t.a, &t.b, &t.c);
printf("a = %lf\n", t.a);
printf("b = %lf\n", t.b);
printf("c = %lf\n", t.c);
return (t);
}
//積の計算
double CULC(Three t)
{
double result;
result = t.a * t.b * t.c;
return (result);
}
3つの数を読み込んでその積を出すコードで、構造体の練習用につくってみました。
ですが、main関数の
t.a = Scan();
t.b = Scan();
t.c = Scan();
の部分に、 型 ‘double’ への型 ‘Three’ からの代入時に互換性のない型です とエラーメッセージが出てしまいます。
どのように直せばうまくコンパイルできるのでしょうか?
原因というか仕組みも知りたいです。