【发布时间】:2018-10-23 18:58:07
【问题描述】:
我在浮点数上测试编码并以单个函数在打印中显示它们,在让它工作后,我将它更改为模块化但我输入的浮点数之一不显示(例如输入是 2.4,显示 4部分,但不是 2)。
这是我正在做的事情的代码
#include <stdio.h>
int calculate (float change, int dollar, int cents)
{
scanf ("%f", &change);
dollar = (int) change;
cents = (int) (((change - dollar) * 100) + 0.5);
return (dollar, cents);
}
int display (int dollar, int cents)
{
printf("dollar is %d\n", dollar);
printf("cents is %d", cents);
return (0);
}
int main ()
{
float change;
int dollar, cents;
dollar = (int) change;
cents = calculate(change, dollar, cents);
display (dollar, cents);
return (0);
}
** 它没有在 printf 中显示美元,我得到的只是 0 **
【问题讨论】:
-
return (dollar, cents);并没有按照你的想法做 - 你只能return来自函数的单个值,你需要使用指针作为“输出参数” -
@UnholySheep 对,我不知道。或者我一定错过了这些信息。谢谢!
-
编译所有警告和调试信息,所以
gcc -Wall -Wextra -g和GCC。改进您的代码以获得没有警告。然后use thegdbdebugger 了解您的程序的行为。改进它。重复直到满意。关于浮动,请阅读floating-point-gui.de
标签: c