• 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

0 głosów
661 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 (90,350 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 (90,350 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,579 wizyt
0 głosów
1 odpowiedź 967 wizyt
pytanie zadane 12 grudnia 2021 w C i C++ przez olcia Nowicjusz (200 p.)
0 głosów
1 odpowiedź 2,542 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...