我有一些非常简单的代码,我遇到了问题。这个程序只是计算一个人的体重(千克)并显示它。但是,每次运行时,打印的答案都会返回0.00000,但会返回正确的答案。有人看到我的代码有什么问题吗?
#include <stdio.h>
#include <math.h>
int main(void)
{
float w;
float const wc=0.454;
printf("Enter your weight in pounds ");
scanf("%f", &w);
float wk = w * wc;
printf("Your weight in kilograms is: %f", &wk);
return(wk);
}
答案 0 :(得分:9)
您不需要将变量的地址作为格式说明符的参数传递以打印该值。你需要改变
printf("Your weight in kilograms is: %f", &wk);
到
printf("Your weight in kilograms is: %f", wk);
那就是说,
始终检查scanf()
的返回值。如果没有这个,如果scanf("%f", &w);
失败,您将调用undefined behavior,因为您最终会在float wk = w * wc;
中使用单位化的局部变量float wk = w * wc;
。
请不要让return
看起来像一个功能。尽量坚持return wk;
。