帮忙检查一个C 程序的 错误
#include<iostream.h>
#include<math.h>
#define A (R1/R2-1)/(R1/R2+1)
#defineN 10000
class F{
private:
double a;
double k;
public:
F(double A,double f) {a=A;k=ln2/f;}
double find (double y1,double y2){
y1=(exp(k))/2;
y2=cosh(a*k)
for (int i=200;i>0;i--){
if(y1==y2)
return f;
else f-=0.0001;}
}
};
void main(){
double R1,R2;F F1;
cin>>R1>>R2;
F1(A,1.0000);
F1.find(R1,R2);
}
问题很多:
1、前面定义了宏A,而在类F的构函中还有个double型的A,两者冲突。
2、ln2的写法是错误的。
3、y2=cosh(a*k)后面漏了个分号。
4、return f;中f未定义。
5、for循环结束后没有返回语句,造成函数find可能没有返回值。
6、F1(A,1.0000);的用法是错误的,调用构函应该在声明变量的时候调用,应该写成FF1(A,1.0000);