(int foot,inch;
float m;
m=(foot+inch/12.0)*0.3048;
scanf("%d %d",&foot,&inch);
printf("(%d+%d/12.0)*0.3048=%f",m);
因为你先运算得到了m,后给foot和inch赋值。解决方法是将scanf("%d %d",&foot,&inch);
和m=(foot+inch/12.0)*0.3048;
这两行反过来。
至于为什么每次不同,因为你的局部变量没有赋初值就拿来使用,变量分配的内存地址中存储的原数据可能还没被清除。
如果我的回答对你有帮助,还望采纳。
改成double型呢