program liczacy pierwiastki rownania kwadratowego

program liczacy pierwiastki rownania kwadratowego
D9
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:3
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...

Kopiuj
#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);
} 
lisu1411
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Biała
  • Postów:29
0

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

edytowany 1x, ostatnio: lisu1411
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Trebuh
około 21, później były tematy tylko ze słowem "równanie" ;)
D9
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:3
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ę...

Kopiuj
#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);
} 
edytowany 1x, ostatnio: Dzionek95
_13th_Dragon
Proponuje podmienić instrukcje na: printf(&quot;a bez problemu moze byc mniejsze od 0, baranie&quot;);
_13th_Dragon
  • Rejestracja:ponad 19 lat
  • Ostatnio:3 miesiące
0

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


Wykonuję programy na zamówienie, pisać na Priv.
Asm/C/C++/Pascal/Delphi/Java/C#/PHP/JS oraz inne języki.
Sopelek
  • Rejestracja:prawie 13 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Kraków
  • Postów:467
0

Bo albo nie rekompilujesz, albo masz delte<0

lisu1411
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Biała
  • Postów:29
0
Kopiuj
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 ?

SO
1,2 - to już było, znowu powtarzasz innych. 3. może być i z nawiasem
lisu1411
u mnie chodzi, kompiluje, liczy i wyświetla.
lisu1411
co do punktu 2. źle mnie chyba zrozumiałeś - masz źle zapisany komunikat
_13th_Dragon
Co do 3 - to jakieś brednie.
lisu1411
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Biała
  • Postów:29
0
Kopiuj
#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;
}
edytowany 1x, ostatnio: lisu1411
_13th_Dragon
Masz jakieś dziwne formatowanie, niepotrzebne wcięcia tylko zaciemniają kod.
lisu1411
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Lokalizacja:Biała
  • Postów:29
0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.