Advertisement
Telaryon

Másodfokú egyenlet számítás II

Mar 18th, 2017
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.49 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int masodfoku_egyenlet(double a, double, double c, double *x1, double *x2);
  5.  
  6. int main(void){
  7.     double a;
  8.     double b;
  9.     double c;
  10.     double x1;
  11.     double x2;
  12.     int megoldasok_szama;
  13.  
  14.     printf("Adja meg az a erteket:\n");
  15.     scanf("%lf", &a);
  16.  
  17.     printf("Adja meg a b erteket:\n");
  18.     scanf("%lf", &b);
  19.  
  20.     printf("Adja meg a c erteket:\n");
  21.     scanf("%lf", &c);
  22.     printf("\n");
  23.  
  24.     megoldasok_szama = masodfoku_egyenlet(a, b, c, &x1, &x2);
  25.  
  26.     switch(megoldasok_szama)
  27.     {
  28.  
  29.         case 2:
  30.             printf("2 megoldas van. \n");
  31.             printf("x1= %.2lf, x2= %.2lf\n", x1, x2);
  32.             break;
  33.  
  34.         case 1:
  35.             printf("1 megoldas van. \nx= %.2lf\n", x1);
  36.  
  37.         default:
  38.             printf ("Nincs megoldas a valos szamok halmazan.");
  39.     }
  40.  
  41.     return 0;
  42. }
  43.  
  44. int masodfoku_egyenlet(double a, double b, double c, double *x1, double *x2){
  45.  
  46.     double diszkriminans;
  47.     int megoldasok_szama;
  48.  
  49.     if(a == 0)
  50.     {
  51.  
  52.         return 0;
  53.     }
  54.  
  55.     *x2 = 2 * a;
  56.     diszkriminans = b * b - 4 * a * c;
  57.  
  58.     if(diszkriminans > 0)
  59.     {
  60.  
  61.         diszkriminans = sqrt(diszkriminans);
  62.         *x1 = (-b + diszkriminans) / *x2;
  63.         *x2 = (-b - diszkriminans) / *x2;
  64.         megoldasok_szama = 2;
  65.     }
  66.     else if(diszkriminans == 0)
  67.     {
  68.  
  69.         *x1 = -b / *x2;
  70.         megoldasok_szama = 1;
  71.     }
  72.     else
  73.     {
  74.         megoldasok_szama = 0;
  75.     }
  76.  
  77.     return megoldasok_szama;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement