從每個頂點的x和y坐標中減去a[0][0]。基於a[0][0]計算每個三角形的面積並累加。
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
主( )
{
int i,j,n;
雙s = 0;
雙a[15][2];
scanf("%d ",& ampn);
for(I = 0;我& ltn;i++)
for(j = 0;j & lt2;j++)
scanf("%lf ",& ampa[I][j]);
for(I = 0;我& ltn;i++)
for(j = 0;j & lt2;j++)
a[I][j]= a[I][j]-a[0][0];
for(I = 1;我& ltn-1;i++)
{
s = s+0.5 *(a[I][0]* a[I+1][1]-a[I+1][0]* a[I][1]);
}
printf("%.2lf ",s);
返回0;
}
近距離提問
測試數據1輸出錯誤。
錯誤輸出:
1.00
預期產出:
5.00
測試數據2輸出錯誤
錯誤輸出:
-10000.00
預期產出:
15000.00
測試數據3輸出錯誤
錯誤輸出:
-1067.50
預期產出:
984.50
測試數據4輸出錯誤
測試數據5輸出錯誤
錯誤輸出:
-1000.00
預期產出:
1100.00
這都是錯的
壹個接壹個的回答
//修正:a[I][j]= a[I][j]-a[0][j];
//不是壹個[0][0],而是壹個[0][j]
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
main( ){int i,j,n;
雙s = 0;雙a[15][2];
scanf("%d ",& ampn);
for(I = 0;我& ltn;i++)
for(j = 0;j & lt2;j++)
scanf("%lf ",& ampa[I][j]);
for(I = 1;我& ltn;i++)
for(j = 0;j & lt2;j++)
a[I][j]= a[I][j]-a[0][j];
for(I = 1;我& ltn-1;i++){
s = s+0.5 *(a[I][0]* a[I+1][1]-a[I+1][0]* a[I][1]);
}
printf("%.2lf ",s);
返回0;
}