关于#算法#的问题,请各位专家解答!(语言-c语言)

img


这个问题出在哪里,我感觉我算的有问题,但是又不知道咋改,刚刚接触c语言第二天,想请教一下各位

#include <stdio.h>
int main() {
    int cm = 0;
    scanf("%d", &cm);
     
    int foot = (int) (1.0 * cm / 100 / 0.3048);
    int inch = (1.0 * cm / 100 / 0.3048 - foot) * 12;
     
    printf("foot: %d, inch:%d", foot, inch);

    return 0;
}

可参考:https://blog.csdn.net/weixin_52055984/article/details/112341575

米转英制长度乘的系数是0.3048,那么现在输入的是厘米,那么乘上的系数不应该是0.003048吗

是你理解错题目意思了。
题目是说有一个东西的长度为:foot英尺inch英寸,如这个物体长:5英尺6英寸,那么整体转换成米,直接用他给的这个公式(foot + inch/12) * 0.3048 约等于 1.7米
也就是说,他不是让你求这个物体一共多少英尺或者说一共多少英寸,而是让你求英尺和英寸组合起来
长度这样写法比较少见,我们习惯性的使用1个单位而不是2个单位,不理解就再举个时间的例子,如1小时30分钟,可以表示成1.5小时,也可以表示成90分钟,还可以表示成1小时30分钟。题目就是让你求出1小时30分钟这个答案,而不是你的1.5小时和90分钟这个答案。
另外还有一个小问题,定义int A = 30.48,会直接去尾,即 int A = 30,会对答案造成一些影响。
解个方程,把数字代入进去就完事儿了

cm = (foot + inch / 12) * 30.48
foot = 12 * inch