我想計算一些整數,並且我知道計算的答案將包含小數,所以我必須使用double。我已經評論了我認爲代碼中的問題在哪裏(/ /這是一切出錯的地方)。C計算整數,但返回一個浮點數
我試圖通過鍵入obs.avgX = (float) (arr[0].x + arr[1].x + arr[2].x + arr[3].x + arr[4].x)/5;
來計算計算,但它根本不起作用。
#include <stdio.h>
int main(void)
{
struct Observations
{
int x;
int y;
double avgX;
double avgY;
};
struct Observations arr[5];
struct Observations obs;
for(int i=0; i < 5; i++)
{
printf("Enter coordinates for point #%d (x,y): ", i +1);
scanf("%d, %d", &arr[i].x, &arr[i].y);
}
printf("\n\nYou entered:\n");
for(int i=0; i < 5; i++)
{
printf("Point #%d: %d,%d\n", i, arr[i].x, arr[i].y);
}
// This is where everything goes wrong
obs.avgX = (arr[0].x + arr[1].x + arr[2].x + arr[3].x + arr[4].x)/5;
obs.avgY = (arr[0].y + arr[1].y + arr[2].y + arr[3].y + arr[4].y)/5;
printf("Average of X: %.2f\n", obs.avgX);
printf("Average of Y: %.2f", obs.avgY);
getchar();
getchar();
return 0;
好的,但我真的必須使用**(float)**嗎?它只是通過使用** 5.0f **就像一個sharm。 – user2971623
我是一個明顯的有點傢伙 - 所以法官告訴我 –
嗯,是的,也許最好是爲視覺輸入(浮動),但也許這是一個壞主意的性能? – user2971623