Sujek
(Sujekkoks)
#1
Witam
Jako, że dopiero zaczynam przygodę z programowaniem( 1 rok studiów) mam pewien problem.
Do napisania mam program obliczający miejsca zerowe funkcji: x^2 +b=0
Napisałem coś takiego:
#include
#include
using namespace std;
int main()
{
float a,b;
cout << “Podaj liczbe a=”; cin >> a;
cout << endl <<“Podaj liczbe b=”; cin >> b;
if(a!=0)
cout << endl << “x1=”<
else
cout << endl << “Brak rozwiazan”<
cout << endl<<"To koniec programu - ";
system(“pause”);
return 0;//koniec programu
}
Wszystko wydaje się dobrze, nie wyskakują mi żadne błędy, funkcja else jest poprawna lecz wynik obliczeń po if zawsze wychodzi taki:
x1=-1. #IND
1052ED48
x2=-1. #IND
Proszę o pomoc.
matty24
(matty24)
#2
Najważniejsza sprawa to brak sprawdzenia, czy wyrażenie które pierwiastkujesz jest większe lub równe zero.
Druga rzecz, to podwójne wywołanie cout w jednej linii. Przez to wyświetla ci się adres (u Ciebie 1052ED48).
#include
#include
using namespace std;
int main()
{
float a,b,w;
cout << "Podaj liczbe a="; cin >> a;
cout << endl <<"Podaj liczbe b="; cin >> b;
if(a!=0)
{
w=-b/a;
if (w>=0)
{
cout << endl << "x1="<
cout << endl << "x2="<<-1*sqrt(w)<
}
else
cout << endl << "Brak rozwiazan"<
}
else
cout << endl << "Brak rozwiazan"<
cout << endl<<"To koniec programu - ";
system("pause");
return 0;//koniec programu
}
Sujek
(Sujekkoks)
#3
Dzięki Ci
już poprawiłem i działa 