Jump to content

Archived

This topic is now archived and is closed to further replies.

KillerBee

Rodzaje trójkatów

Recommended Posts

Mam problem z zadanie na spoju, ponieważ napisałem program, który mi działa, ale oczywiście spoj znajduje jakieś błędy i wywala błąd odpowiedzi.

Treść zadania:

Dla długości boków a, b i c wypisz rodzaj trójkąta.

Wejście

Nieznana liczba testów.

Każdy z nich składa się z trzech liczb: a, b i c (wszystkie < 10000).

Wyjście

Jedno słowo określające rodzaj trójkąta ("prostokatny", "rozwartokatny", "ostrokatny") lub "brak", jeśli taki trójkąt nie istnieje.

Przykład

Wejście:

1 1 10

3 4 5

2 3 4

7 7 7

Wyjście:

brak

prostokatny

rozwartokatny

ostrokatny

Kod

#include <cstdlib>

#include <iostream>

using namespace std;

int typ_trojkata(int c, int a, int b);

int main()

{

int a, b, c, x;

cin>>a;

cin>>b;

cin>>c;

if((a==0)||(b==0)||(c==0))

x=0;

else if((a<b+c)&&(b<a+c)&&(c<a+b))

{

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

{

x=typ_trojkata(a, b, c);

}

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

{

x=typ_trojkata(b, a, c);

}

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

{

x=typ_trojkata(c, a, b);

}

}

else x=0;

switch (x){

case 0: cout<<"brak"<<endl;

break;

case 1: cout<<"prostokatny"<<endl;

break;

case 2: cout<<"rozwartokatny"<<endl;

break;

case 3: cout<<"ostrokatny"<<endl;

break;

default:cout<<"ostrokatny"<<endl;

}

}

int typ_trojkata(int c, int a, int b)

{

int wynik;

wynik = c*c;

if(wynik==((a*a)+(b*b)))

return (1);

if(wynik>((a*a)+(b*b)))

return (2);

if(wynik<((a*a)+(b*b)))

return (3);

}

Proszę o Pomoc.

Link to comment
Share on other sites

Po pierwsze:

Nie widzę tu pętli dzięki której będziesz czytał dane do upadłego. Sposób na to jest bardzo prosty:

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

, i potem wywalasz cin-y z petli.

Po drugie:

Źle porównujesz liczby. Nie przewidujesz tu przypadku, w którym każda liczba jest taka sama.

W tym przypadku rozwiązanie problemu jest równie proste - zamiast pisać

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

napisz:

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

i tak samo w pozostalych dwóch przypadkach.

I rada od Hakkena:

jak zagnieżdżasz pętle czy warunki, rób wcięcia. (chociaż możliwe, że forum zjadło formatowanie)

Link to comment
Share on other sites



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...