• 締切済み

C++で二次方程式のプログラム

大分前に二次方程式のプログラムを作るって問題が出ていました。 しかし、セットで作ったプログラムのフローチャートを書くんですがフローチャートが分かりません。 条件は 虚数解 a=0 実数解 の場合分けをして、解を出すってプログラムなんですが、多分、それ自体は合っていると思います。 しかし、そのフローチャートを書きなさいって問題があったんですが、それが未だに分からないんですが、これをフローチャートに書くとすると、どう書けばいいですか? #include <iostream> #include <cmath> using namespace std; int main() { double a,b,c,d,x0,x1; cout << "aを入力してください\n"; cin >> a; cout << "bを入力してください\n"; cin >> b; cout << "cを入力してください\n"; cin >> c; d=b*b-4*a*c; x0 = (-b + sqrt(d)) / (2 * a); x1 = (-b - sqrt(d)) / (2 * a); if(a==0) { cout << "解は1つで" << -c/b << "です\n"; } else if(d>0) { cout << "解は二つの実数解で,解は" << x0 << "," << x1 << "です\n"; } else { cout << "解は二つの虚数解で,解は" << (-b) / (2 * a) << "+i" << sqrt(-d) / (2 * a) << " , " << (-b) / (2 * a) << "-i" << sqrt(-d) / (2 * a) << "です\n"; } return 0; }

みんなの回答

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

フローチャートがどういうものか、ご存知ですか? プログラムの動作(手順)を上から順に並べて書くだけですよ。基本は。

noname#127615
質問者

補足

矢印は分かるけど、□に何書くか分からないですが

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

フローチャートを書く前の話として、 >x0 = (-b + sqrt(d)) / (2 * a); >x1 = (-b - sqrt(d)) / (2 * a); > >if(a==0) { さんざんaで割っておいてからそれがゼロかどうかを判定するのは 順序が逆ですね。

noname#127615
質問者

補足

#include <iostream> #include <cmath> using namespace std; int main() { double a,b,c,d,x0,x1; cin >> a >> b >> c; if(a==0) { cout << (-c/b) << '\n'; } else if((b*b-4*a*c) < 0) { cout << (-b/2/a) << 'i' << sqrt(4*a*c-b*b)/2*a << '\n'; } else { cout << なんか答え書いたの見つけたんですが書きかけで終わってしまってるんですよね