【发布时间】:2021-12-15 13:09:02
【问题描述】:
我正在编写一个 C 程序。这个 C 程序必须计算二次方程的解。问题是调试器向我显示了这种错误:“E0147”和“C22371”。 这是我的程序:
delta.c:
#include "delta.h"
#include "math.h"
double delta(double a, double b, double c) {
double delta = 0;
double power = pow(b, b);
delta = power - (4 * a * c);
return delta;
}
delta.h:
#if !defined DELTA_H
#define DELTA_H
extern double delta(double a, double b, double c);
#endif /* DELTA_H */
solutions.c:
#include "delta.h"
#include "solutions.h"
#include "math.h"
double solutions (double a, double b, double c, double* x1, double* x2) {
double checking_the_delta = 0;
checking_the_delta = delta(a, b, c);
if (checking_the_delta == 0) {
return 1;
}
else if (checking_the_delta >= 0) {
double tmp = delta(a, b, c);
double square_root = sqrt(tmp);
*x1 = (-b + square_root) / 2;
*x2 = (-b - square_root) / 2;
}
else
return 0;
}
solutions.h:
#if !defined SOLUTIONS_H
#define SOLUTIONS_H
extern solutions(double a, double b, double c, double* x1, double*
x2);
#endif /* SOLUTIONS_H */
最后是 main.c:
#include "solutions.h"
#include "delta.h"
int main(void) {
solutions(...);
return 0;
}
问题出在这一行:“双重解决方案(双a,双b,双c,双* x1,双* x2)”。调试器说这个声明与头文件中的声明不兼容。此外,它说“解决方案重新定义:不同的基本类型”。
我完全迷失了,我再次编写了声明,但调试器不断向我显示这两个错误。
【问题讨论】:
-
你能发布solutions.h文件吗?
-
啊,我忘记了。谢谢。给我1秒
标签: c compiler-errors return-type function-declaration