structを使用して2点の中間点を見つけるプログラムを作成しようとしています。しかし、floatを印刷しようとすると、出力は常にゼロになり、print intのときは常に最も近い整数(端数が必要な場合)になります。だから、どうすれば分数を印刷することができるのでしょうか? (たとえば、出力が1.5などの数値になる場合)端数を印刷する方法
#include <stdio.h>
#include <stdlib.h>
struct point{
int x;
int y;
};
struct rect{
struct point pt1;
struct point pt2;
};
struct point makepoint(int x, int y){
struct point temp;
temp.x = x;
temp.y = y;
return temp;
}
int main()
{
struct rect screen;
struct point middle;
struct point makepoint(int, int);
int XMAX, YMAX;
XMAX = YMAX = 0;
screen.pt1 = makepoint(0,0);
printf("Enter the x axis: ");
scanf("%d",&XMAX);
printf("Enter the y axis: ");
scanf("%d",&YMAX);
screen.pt2 = makepoint(XMAX,YMAX);
middle = makepoint((screen.pt1.x + screen.pt2.x)/2,(screen.pt1.y + screen.pt2.y)/2);
printf("x = %f, ",middle.x);
printf("y = %f\n",middle.y);
return 0;
}
'int'型変数を使って' 1.5'を表すことはできません。 'struct point 'の' x'と 'y'メンバーは型であるため、' struct point'型のオブジェクトを使って '1.5'を取り込むことはできません。 –