函数保持返回0并且参数未读取

时间:2013-01-28 03:46:02

标签: c

我有这段代码:

#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,参数被发送并返回值

谢谢

2 个答案:

答案 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