这应该是一个递归函数,当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;
}
}
引起“冲突类型错误”的问题是,在division()
试图调用函数时,作用域中没有函数main()
的声明。自C99以来,这样的函数调用是不合格的,但是许多编译器都提供了一个隐式声明供此函数调用使用,因为这是原始C的行为,并受C90支持。
使用前先声明功能。将函数定义放在main
之前,或者将声明float division(int i, int n, float h);
插入main之前。