fork download
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4.  
  5. int QuadFormula(double a, double b, double c) {
  6. if (a == 0.0) {
  7. printf("aが0のため2次方程式ではありません。\n");
  8. return 0;
  9. }
  10.  
  11. double D = b*b - 4.0*a*c;
  12.  
  13. if (D > 0.0) {
  14.  
  15. double sqrtD = sqrt(D);
  16. double x1 = (-b + sqrtD) / (2.0 * a);
  17. double x2 = (-b - sqrtD) / (2.0 * a);
  18. printf("解は %f と %f です。\n", x1, x2);
  19. } else if (D == 0.0) {
  20.  
  21. double x = -b / (2.0 * a);
  22. printf("解は %f です。\n", x);
  23. } else {
  24.  
  25. double real = -b / (2.0 * a);
  26. double imag = sqrt(-D) / (2.0 * a);
  27.  
  28. printf("解は %f+%fi, %f-%fi です。\n", real, imag, real, imag);
  29. }
  30.  
  31. return 0;
  32. }
  33.  
  34. int main(void) {
  35. double a, b, c;
  36.  
  37. printf("aの値:\n");
  38. if (scanf("%lf", &a) != 1) { return 1; }
  39.  
  40. printf("bの値:\n");
  41. if (scanf("%lf", &b) != 1) { return 1; }
  42.  
  43. printf("cの値:\n");
  44. if (scanf("%lf", &c) != 1) { return 1; }
  45.  
  46. QuadFormula(a, b, c);
  47.  
  48. return 0;
  49. }
  50.  
Success #stdin #stdout 0s 5304KB
stdin
0
0
0
stdout
aの値:
bの値:
cの値:
aが0のため2次方程式ではありません。