Skocz do zawartości

Prosty program


Recommended Posts

Witam

Zaczynam naukę programowania i na początek mam napisać program który będzie obliczał wartość funkcji kwadratowej. Dla delty mniejszej od zera poprawnie wyświetlany jest komunikat, że funkcja nie posiada pierwiastków. Dla delty większej lub równej zero wyświetla wartość delty =0 i pierwiastki jakieś kompletnie z kosmosu. Co w moim programie jest nie tak ?  

 

http://wklej.to/vTskx

 

Jeśli ma to jakieś znaczenie to program pisałem w Visual Studio 2010 

Link to post
Share on other sites

elif (d==0)
{printf(" Pierwiastek wynosi %d\n", (-b)/2*a); }

if (d>0)
{ printf ("Pierwiastki wynosza %d i %d \n", (-b-sqrt(d))/(2*a), (-b+sqrt(d))/(2*a)); }

else {
printf(" Funkcja nie ma pierwiastkow \n" ); }

 

Staraj się układać kod w sposób bardziej czytelny

 

Pierwszy błąd to brak nawiasów: d=b*b-4*a*c; zamień na d=(b*b)-(4*a*c); - używanie nawiasów do każdych znaków często rozwiązuje problem.

Drugi błąd to: 

Najpierw przedstawię schemat.

if (...)

{

jakiś fragment kodu

}

else if (...)       

{

jakiś fragment kodu

}

else 

{

jakiś fragment kodu

}

 

if (d==0)
{

printf(" Pierwiastek wynosi %d\n", (-b)/2*a);

}

else if (d>0)
{

printf ("Pierwiastki wynosza %d i %d \n", (-b-sqrt(d))/(2*a), (-b+sqrt(d))/(2*a));

}

else

{
printf(" Funkcja nie ma pierwiastkow \n" );

}

Edytowane przez CoJaPacze
  • Popieram 1
Link to post
Share on other sites

Wprowadziłem twoje porady oraz w linijce    printf(" Delta wynosi %d\n",d);     zamiast d wpisałem działanie  (b*b)-(4*a*c) . Teraz delta jest w końcu dobrze wyświetlana. Dla delty mniejszej lub równej 0 komunikaty są poprawne lecz dla większej od 0 pierwiastki nadal są jakimiś przypadkowymi liczbami. 

 

http://wklej.to/lE2Vr


Już sobie poradziłem. W linijce printf(" Pierwiastki wynosza %d i %d \n", (-b-x)/(2*a), (-b+x)/(2*a)); zmieniłem %d na %f i już wszystko jest OK. Dzięki za pomoc 

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...