Program po podaniu danych końcy pracę, zamiast przeprowadzić obliczenia

0

Program po uruchomieniu kaze podac a,b,c jednak po tych komendach nic sie nie dzieje i program konczy prace a nie moge dojsc gdzie jest blad(program ma na poczatku obliczyc delte nastepnie jej pierwiastek i w zaleznosci od tg jaki jest delta podac miejsca zerowe)
Mile by bylo wyslanie poprawionego kodu programu i wskazanie gdzie znajdowal sie blad

#include <iostream>
#include <math.h>
using namespace std;
float a,b,c,z,g;
int main()
{
    cout << "podaj liczbe a" << endl;
    cin >> a;
    cout << "podaj liczbe b" << endl;
    cin >> b;
    cout << "podaj liczbe c" << endl;
    cin >> c;
     z= pow(b,2)-(4*a*c) ;
      g=sqrt(z);
if (z>0)
{
cout << "pierwsze miejsce zerowe:" << (-b-g)/(2*a)
<< endl;
cout <<"drugie miejsce zerowe:" << (-b+g)/(2*a)
<< endl;
}
else
if(z=0)
{
cout <<"miejsce zerowe dla delty=0:" << (-b)/(2*a)
<<endl;
}
else
if (z<0)
{
cout << "nie ma miejsc zerowych"<< endl;
}



    return 0;
}
0

Tu masz błąd

if(z=0)
0

A nawet sie nie kompilowało...

Powinno być lepiej.

#include <iostream>
#include <math.h>

int main()
{
    float a,b,c;
    std::cout << "podaj liczbe a" << std::endl;
    std::cin >> a;
    std::cout << "podaj liczbe b" << std::endl;
    std::cin >> b;
    std::cout << "podaj liczbe c" << std::endl;
    std::cin >> c;
    float z = pow(b, 2) - (4 * a * c);
    float g = sqrt(z);
    if (z > 0)
    {
        std::cout << "pierwsze miejsce zerowe:" << (-b - g) / (2* a)
                 << std::endl;
        std::cout <<"drugie miejsce zerowe:" << (-b + g) / (2 * a)
                 << std::endl;
    }
    else
    if(z == 0)
    {
        std::cout <<"miejsce zerowe dla delty=0: " << (-b) / (2 * a)
                << std::endl;
    }
    else
    if (z < 0)
    {
        std::cout << "nie ma miejsc zerowych" << std::endl;
    }

    return 0;
}

Jak coś to pisalem to na telefonie i nie sprawdzalem czy dziala.

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