你的函数返回值有问题,你的这一行代码在执行之后会将计算的结果变成浮点数,你接收的时候也应该用浮点数,可以用float或者double
#include <stdio.h>
int childHight(int FHight, int MHight);
int main()
{
int m_FHight;
int m_MHight;
int result;
printf("请输入父亲的身高:\n");
scanf("%d" ,&m_FHight);
printf("请输入母亲的身高:\n");
scanf("%d",&m_MHight);
result=childHight(m_FHight,m_MHight);
printf("预测孩子的身高:");
printf("%d",result);
return 0;
}
int childHight(int FHight, int MHight){
int result=(int)(FHight+MHight)*0.54; //这一行代码会将你的计算结果强制转换为int整形
return result;
}
也可以这样修改
#include <stdio.h>
float childHight(int FHight, int MHight);
int main()
{
int m_FHight;
int m_MHight;
float result;
printf("请输入父亲的身高:\n");
scanf("%d" ,&m_FHight);
printf("请输入母亲的身高:\n");
scanf("%d",&m_MHight);
result=childHight(m_FHight,m_MHight);
printf("预测孩子的身高:");
printf("%.0f",result); //在输出时可以设置保留的位数,像我这样就是保留0位的小数,输出也就是整数了
return 0;
}
float childHight(int FHight, int MHight){
float result=(FHight+MHight)*0.54;
return result;
}
这是运行结果图
如果我的回答对你有帮助,请给我个采纳谢谢
你输入的是浮点数,但定义的是整型变量啊。要么把整型都改为浮点型,输入用%f,要么输入整数,表示厘米
你是int类型,不能输入小数
可以输入 188 160这样的
把三个变量的数据类型修改下:float m_FHight, m_MHight; double result; 然后对应的地方如函数的形参类型改为 float , 函数返回类型改为 double ,输入输出里对应的格式符改为:%f 。
大家都知道,数据结构和程序的算法是决定程序性能的两大要素!说实话想要写出合理的代码,必须了解编译器是如何生成代码的,以及cpu是如何执行程序的。
以上部分原帖:https://blog.csdn.net/chenyq991/article/details/79047741,这里将有更加详细的解释
将记录关于《C程序性能优化-20个实验与达人技巧》的一些记录
1、编译器运作流程
在编译器编译时加上编译选项(-O)可以优化生成的汇编代码
2、指令流水线
3、高速缓存
尽量将变量分配给高速缓存的寄存器中
3、基础优化概括
在使用gdb和Eclipse调试工具时无需指定优化选项