• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

c++, pole deltoidu

Object Storage Arubacloud
0 głosów
886 wizyt
pytanie zadane 22 września 2018 w C i C++ przez maciokeks Nowicjusz (220 p.)

Siema wszystkim mam problem z skompilowaniem kodu, otóż program ma za zadanie obliczać pole deltoidu jak wpisze się jego wysokości. Będę bardzo wdzięczny jak pomożecie. PS jestem dopiero początkującym :)

#include <iostream>
using namespace std;
int longer,shorter,score;

int main()
{
    cout<<"Hi, this is program to calculate a deltoid field"<< endl;
    cout<<"Give the length of the longer height:"<< endl;
    cin>>longer>>endl;
    cout<<"Give the length of the short height:"<<endl;
    cin>>shorter>>endl;
    if(longer||short==0)
    {
        cout<<"Bzzz something is wrong"<<endl;
        cout<<"Give the length of the longer height:"<<endl;
        cin>>longer>>endl;
        cout<<"Give the length of the short height:"<<endl;
        cin>>shorter>>endl;

        score = (longer*shorter)/2;
    count<<"This is your score:"<<score endl;
    return 0;
    }
    score = (longer*shorter)/2;
    count<<"This is your score:"<<score endl;
    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 22 września 2018 przez bimbrownik Mądrala (5,180 p.)

Wyrażenie

if(longer||short==0)

zwraca prawdę zawsze, gdy longer będzie różne od zera. Poprawnie powinno być:

if(longer==0 || shorter ==0)

ponieważ każde wyraźenie sprawdzane jest osobno. Poza tym na końcu zamiast cout napisałeś count i w dwóch miejscach pod koniec brakuje << przed endl. Na przyszłość sprecyzuj, jakie błędy pokazuje kompilator.

komentarz 22 września 2018 przez maciokeks Nowicjusz (220 p.)
#include <iostream>
using namespace std;
int longer,shorter,score;

int main()
{
    cout<<"Hi, this is program to calculate a deltoid field"<< endl;
    cout<<"Give the length of the longer height:"<< endl;
    cin>>longer>>endl;
    cout<<"Give the length of the short height:"<<endl;
    cin>>shorter>>endl;
    if(longer==0|| short==0)
    {
        cout<<"Bzzz something is wrong"<<endl;
        cout<<"Give the length of the longer height:"<<endl;
        cin>>longer>>endl;
        cout<<"Give the length of the short height:"<<endl;
        cin>>shorter>>endl;

        score = (longer*shorter)/2;
    cout<<"This is your score:"<<score endl;
    return 0;
    }
    score = (longer*shorter)/2;
    cout<<"This is your score:"<<score endl;
    return 0;
}

Niewiem gdzie wstawić << bo na końcu ma wyświetlać score

 

 

komentarz 22 września 2018 przez bimbrownik Mądrala (5,180 p.)
cin >> longer;

Wystarczy tak, przy cin nie używa się endl (bo nie wypisujemy nic na ekran), to samo przy wczytywaniu kolejnych zmiennych. A << wstawiasz zawsze przed endl, powinno wyglądać to tak:

cout << "This is your score:" << score << endl;

Poza tym powinieneś zmienić typ zmiennej score z int na float lub double, ponieważ przy dzieleniu przez dwa zawsze będzie zaokrąglone w dół, bo int może przechowywać jedynie liczby całkowite.

komentarz 22 września 2018 przez maciokeks Nowicjusz (220 p.)

oki dzięki tylko jest mały problem, przy lini 11 wyskakuje czerony prostokąt 

#include <iostream>

using namespace std;

int longer,shorter,score;

int main()
{
    cout<<"Hi, this is program to calculate a deltoid field"<< endl;
    cout<<"Give the length of the longer height:"<< endl;
    cin>>longer>>;
    cout<<"Give the length of the short height:"<<endl;
    cin>>shorter>>;
    if(longer||shorter==0)
    {
        cout<<"Bzzz something is wrong"<<endl;
        cout<<"Give the length of the longer height:"<<endl;
        cin>>longer>>;
        cout<<"Give the length of the short height:"<<endl;
        cin>>shorter>>;

        score = (longer*shorter)/2;
    cout<<"This is your score:"<<score<<endl;
    return 0;
    }
    score = (longer*shorter)/2;
    cout<<"This is your score:"<<score<<endl;
    return 0;
}

 

komentarz 22 września 2018 przez bimbrownik Mądrala (5,180 p.)
Jeszcze raz porównaj z tym, co ci napisałem (początek poprzedniego komenarza). Usuń >> przed średnikiem.
komentarz 23 września 2018 przez maciokeks Nowicjusz (220 p.)
A mógłbym zapytać dlaczego tak się dzieje, że nie wstawiamy >> przed średnikiem w lini 11, 13, 18 i 20 pytam z czystej ciekawości
komentarz 23 września 2018 przez bimbrownik Mądrala (5,180 p.)

Dlatego, że >> (przeładowanych operatorów przesunięcia bitowego) używasz w przypadku, gdy chcesz po nim wczytać kolejną liczbę, a średnika, kiedy nie chcesz już nic wczytywać. Tak więc przykładowo:

int x, y;
cin >> x >> y;

Tak samo w przypadku cout.

Podobne pytania

0 głosów
2 odpowiedzi 626 wizyt
pytanie zadane 23 września 2018 w C i C++ przez maciokeks Nowicjusz (220 p.)
0 głosów
2 odpowiedzi 806 wizyt
pytanie zadane 20 grudnia 2020 w C i C++ przez programing200033 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 166 wizyt

92,555 zapytań

141,404 odpowiedzi

319,557 komentarzy

61,940 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...