使用 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
乘以0
.
multiply
接受两个int
参数,因此在调用之前你的0.2
和0.5
被隐式转换为int
。这会将两者都截断为0
.
你的类型转换在这个程序中没有做任何事情multiply
,因为(which is an )的返回值int
将在赋值期间被隐式转换为result
反正。
如果您希望此程序正常工作,您需要更改multiply
(或添加浮点版本并调用它)的定义。
输入multiply ()
参数是int
:
int multiply (int x, int y) {
并且您已float
作为输入参数传递:
multiply (0.2, 0.5);
Hi there is a basic problem. As the numbers you are multiplying are floats but you are passing these into the function multiply as int's hence being rounded to 1 and 0.
This should work
#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);
}