使用xcode编程C,这里是f
#include <stdio.h>
int multiply (int x, int y) {
return x * y;
}
int main()
{
float result = (float) multiply (0.2, 0.5);
printf("the result is %f", result);
}
我没有得到正确的价值,我得到0.0000 !!我做了演员,但我不知道什么是错的。
答案 0 :(得分:6)
您的计划会将0
乘以0
。
multiply
需要两个int
个参数,因此您的0.2
和0.5
会在拨打电话之前隐式转换为int
。这会截断为0
。
您的类型转换在此程序中不执行任何,因为multiply
的返回值(int
)将在赋值期间隐式转换为{ {1}}无论如何。
如果希望此程序正常工作,您需要更改result
的定义(或添加浮点版本并调用它)。
答案 1 :(得分:2)
multiply ()
输入参数为int
:
int multiply (int x, int y) {
并且您已将float
作为输入参数传递:
multiply (0.2, 0.5);
答案 2 :(得分:1)
嗨,有一个基本问题。由于您乘以的数字是浮点数,但是您将这些数字传递给函数乘以int,因此舍入为1和0.
这应该有效
#include <stdio.h>
int multiply (float x, float y) {
return x * y;
}
int main()
{
float result = (float) multiply (0.2, 0.5);
printf("the result is %f", result);
}