C言語
1#include<stdio.h> 2#include<math.h> 3 4int main() 5{ 6 double a, b, c, d, n1, n2; 7 8 printf("aの値:"); 9 scanf("%lf", &a); 10 11 if(a == 0){ 12 printf("2次方程式ではありません\n"); 13 }else{ 14 printf("bの値:"); 15 scanf("%lf", &b); 16 printf("cの値:"); 17 scanf("%lf", &c); 18 19 d = b*b - 4 * a * c; 20 n1 =(-b + sqrt(d)) / 2 * a; 21 n2 =(-b - sqrt(d)) / 2 * a; 22 23 if(d > 0){ 24 printf("実数解が2個あります\n"); 25 printf("実数解は%fと%fです\n", n1, n2); 26 }else if(d == 0){ 27 printf("実数解が1個あります\n"); 28 printf("実数解は%fです", n1); 29 }else{ 30 printf("実数解はありません\n"); 31 } 32 } 33}
2次方程式ax^2+bx+c=0のa, b, c(a,b,cは実数)に値を入力した時に実数解の個数やその実数解を表示させるプログラムを作ろうとしています。
上記のように考え実際に実行したところa,b,cが整数の時は正しい答えが表示されるのに、a,b,cに小数(0.5等)を入力すると正しい答えが出ません。
問題点を教えて下さい。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/29 16:56