Programa en C: ecuación de segundo grado
Resuelto
berlingo-48
Mensajes publicados
45
Estado
Miembro
-
Cool -
Cool -
Hola,
acabo de realizar un programa en C que trata una ecuación de segundo grado, y necesito una corrección por favor.
El programa es:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
double a=0,b=0,c=0, delta=0;
double rst1=0, rst2=0, rst3=0 ;
printf("Introduce un valor para a: ");
scanf("%lf", &a);
printf("Introduce un valor para b: ");
scanf("%lf", &b);
printf("Introduce un valor para c: ");
scanf("%lf", &c);
if (a==0){
if (b==0) {
if (c==0) {
printf("todo número real es solución") ;}
else {
printf("no hay solución"); }
}
else {
rst1 = -c/b ;
printf("la solución es %lf", rst1);}
}
else {
delta = b*b - 4*a*c ;
if (delta < 0) {
printf("no hay solución en los reales");}
else {
rst2 = (-b + sqrt(delta))/ (2*a) ;
rst3 = (-b - sqrt(delta))/ (2*a) ;
printf("hay dos soluciones iguales a %lf y %lf", rst2, rst3) ; }
system("PAUSE");
return 0;
}
Gracias de antemano
Configuración: Windows 7 / Chrome 13.0.782.218
acabo de realizar un programa en C que trata una ecuación de segundo grado, y necesito una corrección por favor.
El programa es:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
double a=0,b=0,c=0, delta=0;
double rst1=0, rst2=0, rst3=0 ;
printf("Introduce un valor para a: ");
scanf("%lf", &a);
printf("Introduce un valor para b: ");
scanf("%lf", &b);
printf("Introduce un valor para c: ");
scanf("%lf", &c);
if (a==0){
if (b==0) {
if (c==0) {
printf("todo número real es solución") ;}
else {
printf("no hay solución"); }
}
else {
rst1 = -c/b ;
printf("la solución es %lf", rst1);}
}
else {
delta = b*b - 4*a*c ;
if (delta < 0) {
printf("no hay solución en los reales");}
else {
rst2 = (-b + sqrt(delta))/ (2*a) ;
rst3 = (-b - sqrt(delta))/ (2*a) ;
printf("hay dos soluciones iguales a %lf y %lf", rst2, rst3) ; }
system("PAUSE");
return 0;
}
Gracias de antemano
Configuración: Windows 7 / Chrome 13.0.782.218
3 respuestas
-
¡Aquí tienes una solución más simple!
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
float x1, x2, delta, a, b, c;
printf("Introduce los valores de: a, b, c \n");
scanf("%f %f %f",&a, &b, &c);
delta = (b*b)-(4*a*c);
if (delta == 0.0)
{
x1 = -b /(2*a);
printf("la solución única es xs = %.2f \n",x1);
}
if (delta > 0.0)
{
x1 = (-b - sqrt(delta))/(2*a);
x2 = (-b + sqrt(delta))/(2*a);
printf("las dos raíces son: x1 = %.2f y x2 = %.2f \n",x1, x2);
}
if (delta < 0.0)
printf("la ecuación no admite solución");
return 0;
}