所以,我打算在我的gf上给C语言编程做一点介绍,当我为它编写其中一个程序时出现了这个问题。 这是程序:
#include<stdio.h>
float sum(x,y) {
float u = x+y;
return u;
}
int main(void) {
float x = 30.134;
float y = 392.133;
float z = sum(x,y);
printf("%f \n",z);
}
问题是,当我运行此程序时,它返回422.000000,而不是正确的结果422.267000。我不明白:如果我在这里没有使用任何“int”,为什么程序会截断结果呢?我一直认为程序会截断数字,如果它们是浮点数或双数声明为整数。但我不清楚为什么该程序在这里截断数字。谢谢。
答案 0 :(得分:5)
旧C中的默认类型为int
。如果您希望按照自己的方式键入参数,则需要正确声明参数:
float sum(float x, float y)
// ^^^^^ ^^^^^