program liczacy pierwiastki rownania kwadratowego

0

Witam mógłby ktoś zerknąć na ten kod i powiedzieć dalczego mi ten program nie działa :(? Siedzę nad tym już dobrą godzinę i nie mogę rozgryźć o co chodzi...

#include <stdio.h> 
#include <math.h>
 int main()
 {
	double a,b,c;
	double delta,x1,x2;
	printf("podaj a\n");
	scanf("%f",&a);
		if(a==0){
		printf("baranie a nie moze byc mniejsze od 0");
		return 1;
	}
	printf("podaj b\n");
	scanf("%f",&b);
	printf("podaj c\n");
	scanf("%f",&c);
	
	delta = (b*b)-(4*a*c);
	if(delta>0){
	x1=(-b+sqrt(delta))/(2*a);
	x2=(-b-sqrt(delta))/(2*a);
	}
	else if(delta==0){
	x1=(-b/(2*a));
	}
		
	
	return(0);
} 
0

a gdzie wyświetlasz wynik jak już go policzysz ? :)

0

Oczywiście na tym forum policzyłeś ilość tematów dotyczących równania kwadratowego?

0

BOŻE, ŻEBY NIE PRZEKLNĄĆ POWIEM KURKA JEGO MAĆ WODNA! Teraz go poprawiłem, by jednak wyświetlał, ale po kompilacji i uruchomieniu nic się nie zmieniło. Po wyświetleniu się podaj c i podaniu c program kończy mi pracę...

#include <stdio.h> 
#include <math.h>
 int main()
 {
	double a,b,c;
	double delta,x1,x2;
	printf("podaj a\n");
	scanf("%f",&a);
		if(a==0){
		printf("baranie a nie moze byc mniejsze od 0");
		return (1);
	}
	printf("podaj b\n");
	scanf("%f",&b);
	printf("podaj c\n");
	scanf("%f",&c);
	
	delta = (b*b)-(4*a*c);
	if(delta>0){
	x1=(-b+sqrt(delta))/(2*a);
	x2=(-b-sqrt(delta))/(2*a);
	printf("x1=%f,x2=%f\n",x1,x2);
	}
	else if(delta==0){
	x1=(-b/(2*a));
	printf("x1=%f\n", x1);
	}
		
	return(0);
} 
0

Prawdopodobnie kompilator chce %lf dla double.
Odczekałem 45 min, przeszukując forum znalazłbyś odpowiedź w max 5 min.

0

Bo albo nie rekompilujesz, albo masz delte<0

0
delta = ((b*b)-(4.0*a*c));
    if(delta>0){
        x1=(-b+sqrt(delta))/(2.0*a);
        x2=(-b-sqrt(delta))/(2.0*a);
        printf("x1=%lf, x2=%lf",x1,x2);
    }
    else if(delta==0){
            x1=(-b/(2.0*a));
            printf("x1=%lf", x1);
         }
         else if(delta<0)
                printf("Nie ma rozwiazan");
  1. Nie masz warunku jeżeli delta jest mniejsza od zera.

if(a==0){
printf("baranie a nie moze byc mniejsze od 0");

a nie może być zerem
3. return (0) - nie powinien być bez nawiasu ?

0
#include <stdio.h>
#include <math.h>
 
int main()
{
    double a,b,c;
    double delta,x1,x2;
    printf("podaj a\n");
    scanf("%lf",&a);
        if(a==0){
        printf("baranie 'a' nie moze byc zerem");
        }
        else {
        printf("podaj b\n");
        scanf("%lf",&b);
        printf("podaj c\n");
        scanf("%lf",&c);
        delta = ((b*b)-(4.0*a*c));
             if(delta>0){
             x1=(-b+sqrt(delta))/(2.0*a);
             x2=(-b-sqrt(delta))/(2.0*a);
             printf("x1=%lf, x2=%lf",x1,x2);
             }
             else if(delta==0){
                    x1=(-b/(2.0*a));
                    printf("x1=%lf", x1);
                    }
                    else if(delta<0)
                          printf("Nie ma rozwiazan");
        }

return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1