#include <iostream>
#include <cmath>
using namespace std;
bool equation(double a, double b, double c, double *x1, double *x2)
{
double D;
D = b * b - 4 * a * c;
if (D < 0)
return false;
else
{
*x1 = (-b + sqrt(D) / (2 * a));
*x2 = (-b - sqrt(D) / (2 * a));
return true;
}
}
int main()
{
double a, b, c, *x1, *x2;
cin >> a >> b >> c;
if (equation(a, b, c, &x1, &x2) == true)
{
cout << x1 << x2;
}
else
{
cout << endl;
}
return 0;
}
ポインタについて
ポインタについて
ポインタについて学びたく思い、二次方程式をとく関数をポインタで作ってみたのですが、No matching function for call to 'equation'となり、Build Failedとなります。調べたところポインタの渡し方が悪いとありましたが、具体的にどう直せば良いのでしょうか。どうしたらいいですか?
Re: ポインタについて
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: ポインタについて
本当に解決ですか?
*x1 = (-b + sqrt(D) / (2 * a));
ではなく、
*x1 = (-b + sqrt(D)) / (2 * a);
ではないのですか?
cout << x1 << x2; だと数字が繋がってしまいますよ。
解決したコードを貼り付けてください。
*x1 = (-b + sqrt(D) / (2 * a));
ではなく、
*x1 = (-b + sqrt(D)) / (2 * a);
ではないのですか?
cout << x1 << x2; だと数字が繋がってしまいますよ。
解決したコードを貼り付けてください。