c函数中带浮点的除法

问题描述 投票:0回答:3

这应该是一个递归函数,当i小于'h'时,它会一直向'h'增加1 / i的值,但是我在函数声明中不断收到类型冲突的错误,我在做什么错呢?它刚发生在float中。

#include <stdio.h>

int main()
{
    int i=0, n = 5;
    float h;
    division(i, n, h);
    return 0;
}

float division(int i, int n, float h)
{
    if(i<n)
    {
        h += 1/i;
        division(i, n, h);
    }
    else
    {
        printf("the sum is: %f",h);
        return h;
    }
}
c floating-point
3个回答
1
投票

引起“冲突类型错误”的问题是,在division()试图调用函数时,作用域中没有函数main()的声明。自C99以来,这样的函数调用是不合格的,但是许多编译器都提供了一个隐式声明供此函数调用使用,因为这是原始C的行为,并受C90支持。


0
投票

使用前先声明功能。将函数定义放在main之前,或者将声明float division(int i, int n, float h);插入main之前。


-1
投票
  • 功能
© www.soinside.com 2019 - 2024. All rights reserved.