Can';使用函数时不能得到小数点?

Can';使用函数时不能得到小数点?,c,function,decimal,C,Function,Decimal,所以我在练习使用函数时遇到了一个问题。我制作了一个程序,将用户输入的两个数字分开,但我使用了一个函数来编写它。现在,当我使用一个函数时,我得到的最终答案不是十进制数,即使我使用的是双精度数据类型。当我在没有使用函数的情况下编写程序时,我没有任何问题,但一旦使用函数,我就无法得到十进制数。如果有人能帮助我,我将非常感激!谢谢 代码如下: double divide(num1,num2) { double result; result = num1/num2; return

所以我在练习使用函数时遇到了一个问题。我制作了一个程序,将用户输入的两个数字分开,但我使用了一个函数来编写它。现在,当我使用一个函数时,我得到的最终答案不是十进制数,即使我使用的是双精度数据类型。当我在没有使用函数的情况下编写程序时,我没有任何问题,但一旦使用函数,我就无法得到十进制数。如果有人能帮助我,我将非常感激!谢谢

代码如下:

double divide(num1,num2)
{
    double result;
    result = num1/num2;
    return result;
}

int main ()
{
    double num1;
    double num2;

    printf("Enter the first number: ");
    scanf("%lf", &num1);
    printf("Enter the second number: ");
    scanf("%lf", &num2);

    printf("The answer is: %lf", divide(num1,num2));

    return 0;
}

声明函数时,需要指定类型,或者默认值为
int


您的
double divide(num1,num2)
读作
double divide(int num1,int num2)
-但是您想要
double divide(double num1,double num2)
当您声明函数时,您需要指定一个类型,或者默认值是
int


您的
double divide(num1,num2)
被解读为
double divide(int num1,int num2)
-但是您想要
double divide(double num1,double num2)
如果您尝试使用
-Wall
编译,您应该希望得到一个错误,即

警告:“num1”的类型默认为“int”


更改为双除法(双num1,双num2)

如果您尝试使用
-Wall
编译,您可能会得到一个错误:

警告:“num1”的类型默认为“int”


更改为
double divide(double num1,double num2)

尝试指定参数类型:
double divide(num1,num2)
->
double divide(double num1,double num2)
“只要我使用一个函数,我就不能得到一个十进制数。”-->,看到的输出和预期的输出。谢谢,问题现在已解决!顺便说一句,我使用的是Xcode。我之前使用的函数有一个黄色警告,上面说“这个老式的函数定义前面没有原型”。现在已经完成了。请尝试指定参数类型:
double divide(num1,num2)
->
double divide(double num1,double num2)
“只要我使用一个函数,我就无法得到十进制数。”-->包含所用值的示例总是一个好主意,可以看到输出和预期的输出。谢谢,问题现在已经解决了!顺便说一句,我使用的是Xcode。我之前使用的函数有一个黄色警告,上面说“这个老式的函数定义前面没有原型”。但现在它已经消失了。“默认值是int”-->我不认为这是因为C99——这是一个错误。如果在
printf()
中给定
“%lf”
,则使用C99或更高版本。嗯,我同意。但很明显,他没有得到编译错误,所以我假设他的编译器具有非标准的“增强功能”。“默认值为int”-->由于C99,我不认为这是一个错误。如果在
printf()
中给定
“%lf”
,则使用C99或更高版本。嗯,我同意。但显然他没有得到编译错误,所以我假设他的编译器有非标准的“增强”。