作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <stdio.h>
#include <math.h>
float mysqrt (float x)
{
float y;
x=x-1;
y= 1+(x/2)-(pow(x,2)/2)+(pow(x,3)/8)-(5*pow(x,4)/128);
return y;
}
int main()
{
printf("%f",mysqrt(5));
}
我在这个网站上搜索了较旧的答案并尝试使用它们,但我仍然无法弄清楚为什么它不起作用
最佳答案
我认为您发布的代码不太准确。
您可能在提供函数声明之前调用 mysqrt()
。在旧版本的 C 标准 (C89) 中,这是允许的,并且该函数将被赋予以下隐式声明:
int mysqrt();
也就是说,一个函数接受未知数量的非可变参数,并返回 int。这显然与函数的实际定义相矛盾。
在该标准的最新版本 (C99/C11) 中,如果您尝试调用尚未声明的函数,编译器需要生成诊断消息。
您应该更改代码,以便函数定义出现在函数调用之前,或在函数调用之前提供函数声明。例如:
float mysqrt (float);
int main()
{
printf("%f",mysqrt(5));
}
float mysqrt (float x)
{
/* Function body */
}
关于c - 它给我错误 "conflicting typer for ' mysqrt'”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822864/
#include #include float mysqrt (float x) { float y; x=x-1; y= 1+(x/2)-(pow(x,2)/2)+(po
我是一名优秀的程序员,十分优秀!