我有这段代码:
#include<stdio.h>
#include<conio.h>
#include<math.h>
float sinfa(num1, num2)
{
float fc;
float powers;
if(num1 == ""){
powers = pow(num2,4);
}else{
powers = pow(num1,4);
}
fc = sin(num1-powers+1);
return (fc);
}
float tp(fa,fb,num1,num2)
{
float p;
float fm2 = fa*num2;
float fm1 = fb*num1;
p = (fm2-fm1)/(fa-fb);
printf("%f",fa);
return (p);
}
float main()
{
double num1;
double num2;
float fa;
float fb;
float p1;
clrscr();
printf("Enter number 1: \n");
scanf("%d", &num1);
getch();
printf("Enter number 2: \n");
scanf("%d", &num2);
getch();
clrscr();
fa = sinfa(num1);
printf("%f \n",fa);
getch();
fb = sinfa(num2);
printf("%f",fb);
getch();
clrscr();
p1 = tp(fa,fb,num1,num2);
printf("%f",p1);
getch();
}
我从函数tp一直得到0,当我向他们发送任何想法时,参数没有进入?因为对于sinfa,参数被发送并返回值
谢谢
答案 0 :(得分:4)
您需要为函数参数提供类型。
float tp(float fa,float fb,int num1,int num2)
否则他们被视为int
,这会导致混淆效果。
同样你应该修复
float sinfa(int num1, int num2)
这不会引起问题,但明确你的意思总是好的。
答案 1 :(得分:3)
始终记住一件事,养成提及数据类型的习惯 函数声明时的变量&amp;功能 认定中。在这里你没有提到意味着它的类型 将其视为
int
的默认数据类型。
float tp(fa,fb,num1,num2)
^^missing data type at all parameter, mention data type