Niestety nie działa. Kod całego programu wygląda tak:
#include <cstdlib>
#include <iostream>
#include <cmath>
// liczymy miejsca zerowe, autor
using namespace std;
double wsp[3], x1, x2, delta;
char d = 't';
int main(int argc, char *argv[])
{
cout << "Witaj, jestem programem komputerowym i jestem tak mily, ze policze dla ciebie miejsca zerowe wielomianu kwadratowego" << endl
<< "Bede cie prosil o podanie trzech liczb ktore beda wspolczynnikami wielomianu" << endl << endl;
while(d == 't')
{
cout << "Podaj wspolczynniki wielomianu zaczynajac od najwyzszej potegi: " << endl;
for(int i = 0; i < 3; i++)
{
onceagain:
cout << "Podaj wspolczynnik nr " << i+1 << ": ";
cin >> wsp[i];
while(!(cin>>wsp[i])) //dopóki strumień jest w stanie błędu -> dopóki podawane są błędne dane
{
cout << "To nie jest kiczba." << endl;
goto: onceagain;
cin.clear(); //kasowanie flagi błędu strumienia
cin.sync(); //kasowanie zbędnych znaków z bufora
}
if((wsp[i] == 0) & (i == 0))
{
cout << "To nie bedzie rownanie kwadratowe" << endl;
goto onceagain;
}
}
cout << endl << "Wielomian ma postac " << wsp[0] << "x^2 + " << wsp[1] << "x + " << wsp[2] << endl;
delta = wsp[1] * wsp[1] - 4 * wsp[0] * wsp[2];
if(delta < 0)
{
cout << endl << "Pierwiastki zespolone, dodamy je w wersji 1.1 :)" << endl;
goto wybor;
}
x1 = (-wsp[1] - sqrt(delta)) / 2 * wsp[0];
x2 = (-wsp[1] + sqrt(delta)) / 2 * wsp[0];
if(x1 == x2) cout << "Pierwiastki twojego wielomianu to: " << "X1 = X2 = " << x1 << endl;
else cout << "Pierwiastki twojego wielomianu to: " << "X1 = " << x1 << " X2 = " << x2 << endl;
wybor:
cout << "Jeszcze raz? (t/n)" << endl;
cin >> d;
}
system("PAUSE");
return EXIT_SUCCESS;
}
Jak widzicie program jest trywialny. Ktoś powie mi jak powinna wyglądać implementacja tej pętli? Chodzi o to, ze gdy ktoś podaje literkę z klawiatury to chcę, by program wyświetlił