我有一個包含三個數字的結構:number1、number2、number3。然后,我想對它們執行除法運算子:(number1)/(number2 number3)。
typedef struct {
int number1;
int number2;
int number3;
double ratio;
} table;
我試圖這樣劃分它們:
for(int a = 0; a < 5; a )
{
for(int b = 0; b < 3; b )
{
table[a][b].ratio = ((table[a][b].number1)/(table[a][b].number2 data[a][b].number3));
}
}
我是否應該使用重復減去除數和除數來劃分結構,直到除數小于除數?或者還有其他方法嗎?我需要獲得雙精度值,例如:
table[0][0].number1 = 1;
table[0][0].number2 = 2;
table[0][0].num3 = 3;
然后,
table[0][0].ration = 1/5=0.2
uj5u.com熱心網友回復:
您的代碼似乎正確。所缺少的只是在進行除法之前加倍的演員表,例如:
table[a][b].ratio = ((double)(table[a][b].number1)) /
(table[a][b].number2 data[a][b].number3);
如果其中一個運算元是 C 中的浮點數,則除法變為浮點除法。
uj5u.com熱心網友回復:
您需要更改除法以使運算元為浮點數。通常不建議在沒有顯式轉換的情況下在同一個運算式中混合整數和浮點運算元。內部for回圈體應重寫為:
int sum = table[a][b].number2 data[a][b].number3;
table[a][b].ratio = (double)table[a][b].number1 / (double)sum;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530466.html
標籤:C结构体
