Równanie kwadratowe – wczytywanie zmiennych za pomocą cin

0

Cześć, mam problem z zadaniem :
http://pl.spoj.com/problems/ROWNANIE/

A mianowicie o wczytywaniu tych zmiennych za pomocą cin. W zadaniach ze spoja czesto jest liczba przypadków do rozwazenia, tutaj nie ma. Zastosowałem tutaj półśrodek który przechodzi przez sędziego, a bardzo nie lubie półśrodków i myślę że ten programik może wyglądać lepiej bo ten if sprawdzający liczbe cinów kaleczy mi oko. Można jakoś inaczej i zgrabniej rozwiązać to zadanie?

#include <iostream>
using namespace std;
//http://pl.spoj.com/problems/ROWNANIE/

int amountOfRoots(float a, float b, float c){
    float delta = b*b-4*a*c;
    if (delta < 0){
        return 0;
    }
    if (delta > 0){
        return 2;
    }
    return 1;
}


int main() {
	int sum=0;
	float a,b,c,tmp,delta;

	int counter = 0;
	while(cin >> tmp)
    {
        counter++;
        if (counter ==1){
            a = tmp;
        }
        else if (counter == 2){
            b = tmp;
        }
        else {
            counter = 0;
            c = tmp;
            cout << amountOfRoots(a, b, c) << endl;
        }
    }
	return 0;
}

1

Kurde, napisałem ten temat i Od razu mi przyszła odpowiedź do głowy, z góry przepraszam ;p

	while(cin >> a >> b >>c)
    {

        cout << amountOfRoots(a, b, c) << endl;

    }

0

nie lubie analizowac czyjegos kodu ale ja zrobilbym to tak

#include <iostream.h>

#include <math.h>


// dziala dla wspolczynnikow (x-1)(x-2)=[1,-3,2]


void main()




{


float a,b,c,x;

float wynik,delta,x1,x2;


cout << "wczytaj a  ";
cin >> a;
cout << "wczytaj b  ";
cin >> b;
cout << "wczytaj c  ";
cin >> c;



delta=b*b-4*a*c;

x=sqrt(delta);

x1=(-b-x)/2*a;

x2=(-b+x)/2*a;


cout << x1;

cout << x2;

}
0

masz racje !

0

#include <iostream.h>

#include <math.h>

void main()

{

float a,b,c,x;

float wynik,delta,x1,x2;

cout << "wczytaj a ";
cin >> a;
cout << "wczytaj b ";
cin >> b;
cout << "wczytaj c ";
cin >> c;

delta=bb-4a*c;

if (delta>0) cout << "dwa pierwiastki";
if (delta=0) cout << "jeden pierwiastek";
if (delta<0) cout << "brak pierwiastkow";

}

0
#include <iostream.h>

#include <math.h>

float del(float a,float b,float c)

{

float wynik=b*b-4*a*c;

return wynik;

}



void main()

{

int x,y,z,licz;

do

{


cin >> x;
cin >> y;
cin >> z;


float ze=del(x,y,z);

if (ze>0) cout << "dwa pierwiastki";
if (ze==0) cout << "jeden pierwiastek";
if (ze<0) cout << "brak pierwiastkow";



}

while (licz<5);

}

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