c语言关于类型转换的问题,编译的时候会出现下面两个警告,应该怎么消除这两个警告?

2025-05-16 19:50:33
推荐回答(3个)
回答1:

一、
int feet;
float centimeters, inches;
改成
double feet ,centimeters, inches;
然后所有的%d %f改成%lf

二、
feet = centimeters / (CPI * IPF);
inches = centimeters / CPI - feet * IPF;
改成:
feet = (int)(centimeters / (CPI * IPF));
inches = (float)(centimeters / CPI - feet * IPF);
其实这是编译器的问题,且是警告,不处理也行

回答2:

int feet;
float centimeters, inches;
修改为
double feet;
double centimeters, inches;

然后将输出都用 %lf输出

回答3:

#include

#define CPI 2.54 //centimeters per inches
#define IPF 12 //inches per feet

int main(void)
{
double feet, inches;
float centimeters;

printf("Enter a height in centimeters:");
while (scanf("%f", ¢imeters) == 1 && centimeters > 0)
{
feet = centimeters / (CPI * IPF);
inches = centimeters / CPI - feet * IPF;
printf("%.1f cm = %d feet, %.1f inches\n", centimeters, feet, inches);
printf("Enter a height in centimeters (<=0 to quit):");
}
printf("Bye!");
return 0;
}