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或更高版本。嗯,我同意。但显然他没有得到编译错误,所以我假设他的编译器有非标准的“增强”。