1 / 42
May 2016

Wynika to z twojego sposobu wczytywania. Spróbuj po prostu tak:
while(cin >>a>>b>>c)

jozeph wyjaśnił wszystko. Nie chcę mi się już dalej pisać choć mam na to ochotę, tym bardziej, że inni też mi pomagają. Za chwilę to chyba, w przenośni, urwę pokrywę od lapka. Spóźniłem się z odpowiedzią prawie dwie godziny i tak nie jestem pewien czy to, co teraz piszę znajdzie się na forum. Czy da się coś zrobić z czasem wejścia na to forum?
Ja bym jeszcze usunął zbędne elseif, ale bez tego zabiegu też działa. Nie wiem tylko czemu służą x,y,z. Ale nie chcę się wymądrzać, sam kwitnę z ileś tam zadaniami, a ostatnie doprowadza mnie już nie do szału a rozpaczy.

Dzięki za pomoc. Faktycznie to pomogło ale sędzia wciąż daje mi błędną odpowiedz. Macie może jakieś inne pomysły.
x,y,z to takie zmienne pomocnicze zeby ułożyć rosnąco boki trójkąta(twierdzenie cosinusów liczę dla najdłuższego boku).

Masz dwa błędy w zapisie wyrażenia: ((a*a+b*b-c*c)/2*b*a). Musisz pamiętać o kolejności wykonywania działań oraz o tym, że wynikiem tego wyrażenia niekoniecznie powinna być liczba całkowita.

1 year later

Cześć, mam tutaj chyba klasyczny przypadek, zrobiłem zadanie, testy się zgadzają ale mi nie zalicza...

https://ideone.com/zL7QQd26

Oto mój kod, śmiało krytykujcie, bo nie mam pomysłu co poszło źle.

Dzięki za szybką odpowiedź, poprawiłem program według tej wskazówki lecz nadal nie chcą mi go zaliczyć...

Czy to znaczy, że pomysł z twierdzeniem cosinusów jest niewłaściwy dla tego zadania, czy raczej moje wykonanie jest słabe?

http://ideone.com/7V1vk123

wyraźnie nie potrafisz wyciągać ogólnych wniosków

sprawdź wynik dla danych

4 12 13
4 13 12
12 4 13
12 13 4
13 4 12
13 12 4

https://ideone.com/398hZS16

Wydaje mi się, że zrozumiałem co chciałeś mi przekazać Mariusz, wtedy permutacje nie działały odpowiednio, bo nie dałem w konstrukcji if przerywnika gdy znalazł odpowiednią liczbę.
Dodałem jedną linijkę ale to wciąż nie to co chce sędzia, mimo iż teraz działa też dla każdej permutacji wpisywanych danych.
Czy w takim razie błąd jest w samej metodzie sprawdzania tych rodzai trójkątów?

P.S. Programu z linku nie wysyłałem do sprawdzenia. Chciałem zobaczyć co w ogóle zapisuje się do tej tablicy.

6 months later

Witam,
Czy ktos moze mi powiedziec co jest nie tak z tym programem?

#include
#include

using namespace std;

int main()
{
long double a,b,c;

while (cin>>a>>b>>c)
{
if (a+b>c&&a+c>b&&b+c>a&&a>0&&b>0&&c>0&&a<10000&&b<10000&&c<10000)
{
if(aa==bb+cc || bb==cc+aa || cc==aa+bb)
cout <<“prostokatny”;
else if(a
a<bb+cc || bb<cc+aa || cc<aa+bb)
cout<<“ostrokatny”;
else cout<<“rozwartokatny”;
}
else cout<<“brak”;
cout <<endl;
}

return 0;

}

przekaż program przez ideone.com3 lub przynajmniej poprawnie wklej - bo obecnie to co wkleiłeś nie ma żadnego sensu, a mnie nie chce się tego poprawiać

warunków <10000 nie trzeba pewnie wprowadzac

w code blocks chodzi

tutaj nie

mam pare tez innych zadan zrobionych ktore chodza w code blocks a tutaj nie

nie trzeba, ale ich brak nic nie zmieni

tutaj też chodzi, tyle, że wyniki ma złe :slight_smile: - nawet dla danych testowych podanych w zadaniu

tu też chodzą, tyle że podobnie jak w tym zadaniu niedokładnie testujesz, sędzia robi to dokładniej i nie zalicza

Nie ten kod wkleilem
Przepraszam

Co z tym jest nie tak? On jest bez warunków <10000

Dolozylem jeszcze warunków o tym, ze dlugosci bokow nie moga byc rowne i mniejsze 0 i tez nie zalicza sedzia

tu był kod…

Co przeoczyłem?

@dziabagooo
Pokolei:

Czy możesz opowiedzieć co robi klamra po klamrze w Twojej pętli while’a?

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

Podobnie co rozumiesz przez:

else
{
if

w szczególności z chęcią się dowiem czym się różni od zwykłego else if {

Jak już poprawisz kod na czytelny, to możesz zastanowić się czy masz poprawny out (czyt. nie masz) dla danych:

1 2 3

PS. W 99% (w 99.99% ?) przypadków gdy twierdzisz, że Tobie działa, a na spoju nie to twierdzisz źle. Twój program źle działa np. dla powyższego testu, ale takiego nie sprawdzałeś, albo nie wiesz kiedy można zbudować trójkąt.

Wiem, Kiedy mozna zbudowac trojkat - skonczylem Politechnike Warszawska :slight_smile:

ZLe dalem warunek sprawdzania dlugosci bokow

Powinno byc i zamiast lub

Czyli

if (a<b+c && b<a+c && c<a+b && a>0 && b>0 && c>0 && a<10000 && b<10000 && c<10000)

Co rozumie hmm najpierw chcialem sprawdzic ifem czy da sie zbudowac trojkat (czyli kazdy bok mniejszy od sumy dwoch pozostalych i wiekszy zero)

Jezeli tak jest to ma sprawdzic jaki to typ trojkata

Pewnie za duzo klamerek dalem

Popracuje nad tym jeszcze :slight_smile: