我有一个包含三个数字的结构体:number 1、number 2、number 3。然后,我要对它们执行除法运算:(数字1)/(数字2+数字3)。
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
2条答案
按热度按时间wz3gfoph1#
你的代码看起来是对的,只是缺少一个在除法运算之前要加倍的强制转换,类似于:
在C语言中,如果其中一个操作数是浮点数,则除法将变为浮点除法。
3pvhb19x2#
您需要更改除法,使操作数为浮点数。通常不建议在同一表达式中混合整数和浮点操作数,除非进行显式强制转换。内部
for
循环体应重写为: