不难!大家解释下!
#include <iostream >
#include <cmath>
using namespace std;
double * quadratic(double * factor){
static double result[2];
double delta; delta=factor[1]*factor[1]-4*factor[0]*factor[2];//上面的double * factor是指针!为什么factor[1]成了数组!数组也要声明的啊!
if(delta<0) return 0;
delta=sqrt(delta);
result[0]=(-factor[1]+delta)/(2*factor[0]);
result[1]=(-factor[1]-delta)/(2*factor[0]);
return result;
}
int main(){
double fun[3], * r;
cout<<"Please enter three factors:"; cin>>fun[0]>>fun[1]>>fun[2];
r=quadratic(fun);
if(r) cout<<"The solution is: X1="<<r[0]<<"\t"<<"X2="<<r[1]<<endl;
else cout<<"No solution! \n";
return 0;
}
[解决办法]
数组退化成地址,
factor[n] 也是被转换成 *(factor+n)
[解决办法]
指针可以当作数组, int *p; 就可以当作 p[0],p[1], 之类的东西