Cerinta: Sa se scrie un program C pentru rezolvarea ecuatiei de gradul 2.
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void)
{
int a,b,c,delta,x1,x2,x;
float cpx1,cpx2;
printf("Introduceti 3 numere intregi de la tastatura:\n");
if(scanf("%d%d%d",&a,&b,&c)!=3)
{
printf("Date incorecte");
exit(1);
}
if(a!=0)
{
delta=pow(b,2)-4*a*c;
printf("Ecuatie de gradul 2.\nDelta: b^2-4*a*c: %d\n",delta);
if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("Delta > 0. Avem 2 solutii reale: x1= %d si x2= %d.",x1,x2);
}
else
if(delta==0)
{
x=-b/(2*a);
printf("Delta = 0. Avem 2 radacini egale: x1=x2= %d",x);
}
else
{
cpx1=-b/(2*a);
cpx2=(sqrt(-delta))/(2*a);
printf("Delta < 0. Ecuatia are radacini complexe. O parte reala si una imaginara.\nx1= %.3f si x2= %.3f",cpx1,cpx2);
}
}
else
if(b!=0)
{
x=-c/b;
printf("Ecuatie de gradul 1. X= %d",x);
}
else
if(c!=0)
printf("Ecuatie imposibila");
else
printf("Ecuatie nedeterminata");
return 0;
}
Sau:
#include <stdio.h>
#include <math.h>
int main(void)
{
int a,b,c,delta,x1,x2,x;
float cpx1,cpx2;
printf("Introduceti 3 numere intregi de la tastatura:\na= ");
scanf("%d",&a);
printf("b= ");
scanf("%d",&b);
printf("c= ");
scanf("%d",&c);
if(a!=0)
{
delta=pow(b,2)-4*a*c;
printf("Ecuatie de gradul 2.\nDelta: b^2-4*a*c: %d\n",delta);
if(delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("Delta > 0. Avem 2 solutii reale: x1= %d si x2= %d.",x1,x2);
}
else
if(delta==0)
{
x=-b/(2*a);
printf("Delta = 0. Avem 2 radacini egale: x1=x2= %d",x);
}
else
{
cpx1=-b/(2*a);
cpx2=(sqrt(-delta))/(2*a);
printf("Delta < 0. Ecuatia are radacini complexe. O parte reala si una imaginara.\nx1= %.3f si x2= %.3f",cpx1,cpx2);
}
}
else
if(b!=0)
{
x=-c/b;
printf("Ecuatie de gradul 1. X= %d",x);
}
else
if(c!=0)
printf("Ecuatie imposibila");
else
printf("Ecuatie nedeterminata");
return 0;
}