1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <math.h>
int polynome(double v,double w,double x,double *y,double *z);
int main(void)
{
double a,b,c; double *d,*e; int q;
printf("Rentrez la valeur de a :");scanf("%lf",&a);
printf("\nRentrez la valeur de b :");scanf("%lf",&b);
printf("\nRentrez la valeur de c :");scanf("%lf",&c);
printf("\n\nOn va donc s'interesser aux racines de : %lf*x*x + %lf*x + %lf\n\n\n",a,b,c);
q=polynome(a,b,c,&d,&e);
switch (q)
{
case 0 : printf("Il n'y a pas de solutions !");break;
case 1 : printf("Il y a une infinite de solutions !");break;
case 2 : printf("Il y a une unique solution : x = %lf",d);break;
case 3 : printf("Il y a deux solutions reelles : x = %lf et y= %lf",d,e);break;
case 4 : printf("Il y a deux solutions complexes conjuguees : x = %lf + I*%lf et x = %lf - I*%lf",d,e,d,e);break;
}
return 0;
}
int polynome(double v,double w,double x,double *y,double *z)
{
int p;
double delta;
delta=(w*w-4*v*x);
if ((v==0)&&(w==0)&&(x!=0))
{
p=0;
}
if ((v==0)&&(w==0)&&(x==0))
{
p=1;
}
if ((v==0)&&(w!=0))
{
p=2;
*y=-x/w;
}
if ((v!=0)&&((delta)==0))
{
*y=-w/(2*v);
p=2;
}
if ((v!=0)&&(delta>0))
{
*y=(-w-sqrt(delta))/(2*v);
*z=(-w+sqrt(delta))/(2*v);
p=3;
}
if ((v!=0)&&(delta<0))
{
*y=-w/(2*v);
*z=sqrt(delta)/(2*v);
p=4;
}
return p;
} |
Partager