3个回答
展开全部
int c=(a+b/12)*0.3048;这句开始出错了。
首先结果包含小数,c的类型应该为浮点型float;
第二,b/12这是两个整形数的运算,结果直接去掉小数只保留整数部分仍为整形,而b永远小于12,结果永远为0,相当于你舍去了英寸部分,可以改为b*1.0/12或b/12.0,这样所有优先级的运算均因有浮点型参与而保持结果为浮点型;
第三,在这样改变之后,结果输出时,格式应该为%f,以浮点数形式输出。
最终应改为:
float c=(a+b*1.0/12)*0.3048;
printf("%f。",c);
首先结果包含小数,c的类型应该为浮点型float;
第二,b/12这是两个整形数的运算,结果直接去掉小数只保留整数部分仍为整形,而b永远小于12,结果永远为0,相当于你舍去了英寸部分,可以改为b*1.0/12或b/12.0,这样所有优先级的运算均因有浮点型参与而保持结果为浮点型;
第三,在这样改变之后,结果输出时,格式应该为%f,以浮点数形式输出。
最终应改为:
float c=(a+b*1.0/12)*0.3048;
printf("%f。",c);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询