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

Podsumowanie ile było możliwych trójkątów i ile było trójkątów prostokątnych

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
452 wizyt
pytanie zadane 9 grudnia 2020 w C i C++ przez emmail Nowicjusz (160 p.)

 

 

 

Witam,

mam do stworzenia program sprawdzający, czy z odcinków o długościach wprowadzonych przez użytkownika z klawiatury można zbudować trójkąt. Wprowadzamy pięć kolejnych trójek liczb i po każdym wprowadzeniu sprawdzane są warunki czy powstanie trójkąt oraz czy trójkąt jest prostokątny. Z tą częścią sobie poradziłem. Natomiast mam kłopot ze sprawdzeniem na samym końcu ile było możliwych trójkątów (z podanych wcześniej wartości) oraz ile z nich było trójkątami prostokątnymi.

Poniżej jest kod. Proszę o wyrozumiałość i pomoc.

#include <iostream>
#include <math.h>
#include <windows.h>
using namespace std;

int a, b, c;

int main()
{
    cout<<"podejscie 1"<<endl;
    cout << "podaj 3 rozne cyfry a komputer powie czy powstanie z nich trojkat"<<endl;
   cout<<"podaj 1 liczbe\n"<<endl;
     cin>>a;

    cout<<"podaj 2 liczbe\n"<<endl;
     cin>>b;
    cout<<"podaj 3 liczbe\n"<<endl;
     cin>>c;

  if (a+b>c && b+c>a && a+c>b)
        cout<< "mozna zbudowac trojkat" <<endl;
      
  else cout << "nie mozna zbudowac trojkata\n" <<endl;

  if (a+b>c && b+c>a && a+c>b)

    if (c*c==a*a+b*b)
       cout<< "powstaje trojkat prostokatny"<<endl;
   else
    cout <<"nie powstanie trojkat prostokatny"<<endl;
Sleep(5000);
system("cls");

    cout<<"podejscie 2"<<endl;
    cout << "podaj 3 rozne cyfry a komputer powie czy powstanie z nich trojkat"<<endl;
   cout<<"podaj 1 liczbe\n"<<endl;
     cin>>a;

    cout<<"podaj 2 liczbe\n"<<endl;
     cin>>b;
    cout<<"podaj 3 liczbe\n"<<endl;
     cin>>c;

  if (a+b>c && b+c>a && a+c>b) cout<< "mozna zbudowac trojkat"<<endl;
  else cout << "nie mozna zbudowac trojkata\n" <<endl;

  if (a+b>c && b+c>a && a+c>b)

    if (c*c==a*a+b*b)
       cout<< "powstaje trojkat prostokatny"<<endl;
   else
    cout <<"nie powstanie trojkat prostokatny"<<endl;
Sleep(5000);
system("cls");

    cout<<"podejscie 3"<<endl;
    cout << "podaj 3 rozne cyfry a komputer powie czy powstanie z nich trojkat"<<endl;
   cout<<"podaj 1 liczbe\n"<<endl;
     cin>>a;

    cout<<"podaj 2 liczbe\n"<<endl;
     cin>>b;
    cout<<"podaj 3 liczbe\n"<<endl;
     cin>>c;

  if (a+b>c && b+c>a && a+c>b) cout<< "mozna zbudowac trojkat"<<endl;
  else cout << "nie mozna zbudowac trojkata\n" <<endl;

  if (a+b>c && b+c>a && a+c>b)

    if (c*c==a*a+b*b)
       cout<< "powstaje trojkat prostokatny"<<endl;
   else
    cout <<"nie powstanie trojkat prostokatny"<<endl;
    Sleep(5000);
system("cls");

    cout<<"podejscie 4"<<endl;
    cout << "podaj 3 rozne cyfry a komputer powie czy powstanie z nich trojkat"<<endl;
   cout<<"podaj 1 liczbe\n"<<endl;
     cin>>a;

    cout<<"podaj 2 liczbe\n"<<endl;
     cin>>b;
    cout<<"podaj 3 liczbe\n"<<endl;
     cin>>c;

  if (a+b>c && b+c>a && a+c>b) cout<< "mozna zbudowac trojkat"<<endl;
  else cout << "nie mozna zbudowac trojkata\n" <<endl;

  if (a+b>c && b+c>a && a+c>b)

    if (c*c==a*a+b*b)
       cout<< "powstaje trojkat prostokatny"<<endl;
   else
    cout <<"nie powstanie trojkat prostokatny"<<endl;

Sleep(5000);
system("cls");

    cout<<"podejscie 5"<<endl;
    cout << "podaj 3 rozne cyfry a komputer powie czy powstanie z nich trojkat"<<endl;
   cout<<"podaj 1 liczbe\n"<<endl;
     cin>>a;

    cout<<"podaj 2 liczbe\n"<<endl;
     cin>>b;
    cout<<"podaj 3 liczbe\n"<<endl;
     cin>>c;

  if (a+b>c && b+c>a && a+c>b) cout<< "mozna zbudowac trojkat"<<endl;
  else cout << "nie mozna zbudowac trojkata\n" <<endl;

  if (a+b>c && b+c>a && a+c>b)

    if (c*c==a*a+b*b)
       cout<< "powstaje trojkat prostokatny"<<endl;
   else
    cout <<"nie powstanie trojkat prostokatny"<<endl;
Sleep(5000);
system("cls");

    cout<<"podsumomwanie"<<endl;
  // tu program powinien zrobić podsumowanie ile trójkątów powstało oraz ile z nich jest prostokątnych





    return EXIT_SUCCESS;
}

 

1 odpowiedź

0 głosów
odpowiedź 9 grudnia 2020 przez SzkolnyAdmin Szeryf (89,030 p.)
Definiujesz na początku zmienne licznikowe typu int z wartościami zero. Po każdym sukcesie inkrementujesz odpowiednią zmienną, a na końcu wyświetlasz ich wartości.

Co zaś do napisanego programu:

- nie deklaruj zmiennych globalnych (przed pętlą main).

- naucz się używać pętli (powtarzasz kod).

- nie zakładaj, że liczba c jest największa.
komentarz 9 grudnia 2020 przez emmail Nowicjusz (160 p.)
edycja 9 grudnia 2020 przez emmail

 

" nie zakładaj, że liczba c jest największa.

to poprawiłem poprzez: c*c==a*a+b*b||a*a==b*b+c*c||b*b==a*a+c*c

Po każdym sukcesie inkrementujesz odpowiednią zmienną, a na końcu wyświetlasz ich wartości.

Dodałem na początku "int i=0"

później w kodzie mamy

.
.
if(a+b>c && b+c>a && a+c>b)
      cout<< "mozna zbudowac trojkat"<<i++<<endl;
 else cout << "nie mozna zbudowac trojkata\n" <<endl;

Na końcu podsumowanie

cout<<"Ilosc trojkatow: "<< i<<endl;

i zlicza, ale podczas działania programu wyświetla mi się:

"można zbudować trojkat0"

"można zbudować trojkat1"

jak tego się pozbyć? Wiem, że problem leży w tym, że w złym miejscu wstawiłem i++ , ale w każdym innym jak wstawię, wywala błąd, że else potrzebuje if...

komentarz 10 grudnia 2020 przez SzkolnyAdmin Szeryf (89,030 p.)

Poczytaj o blokach instrukcji ujętych w klamry.

if(a+b>c && b+c>a && a+c>b) {
    cout<< "mozna zbudowac trojkat"<<endl;
    i++;
}
 else cout << "nie mozna zbudowac trojkata\n" <<endl;

 

komentarz 10 grudnia 2020 przez emmail Nowicjusz (160 p.)
Bardzo dziękuję za pomoc. Wszystko działa. Spróbuję teraz zmodyfikować kod, aby był bardziej prosty używając pętli. Jeszcze raz dzięki.

Podobne pytania

+1 głos
1 odpowiedź 1,001 wizyt
0 głosów
1 odpowiedź 773 wizyt
pytanie zadane 12 grudnia 2021 w C i C++ przez olcia Nowicjusz (200 p.)
0 głosów
1 odpowiedź 2,281 wizyt

93,187 zapytań

142,203 odpowiedzi

322,022 komentarzy

62,513 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2345p. - dia-Chann
  2. 2306p. - Łukasz Piwowar
  3. 2295p. - Łukasz Eckert
  4. 2282p. - CC PL
  5. 2252p. - Tomasz Bielak
  6. 2219p. - Łukasz Siedlecki
  7. 2215p. - rucin93
  8. 2201p. - Michal Drewniak
  9. 2156p. - Marcin Putra
  10. 2152p. - Adrian Wieprzkowicz
  11. 2105p. - Mikbac
  12. 1941p. - Anonim 3619784
  13. 1733p. - rafalszastok
  14. 1480p. - Michał Telesz
  15. 1469p. - ssynowiec
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...