Pomoc w zadaniu z informatyki

0

Napisz program, który pozwoli rozstrzygnąć, czy wśród n liczb całkowitych dodatnich
wprowadzonych z klawiatury była taka trójka liczb x, y i z, dla których nie da się
zbudować trójkąta o bokach długości x, y, z.

Proszę o pomoc w wyjaśnieniu tego zadania i jak to zrobić pÓÓÓÓki co mój kod wygląda tak jak poniżej wiem że nie działa ale nie mam pojęcia jak to zrobić dlatego proszę o pomoc.

#include <iostream>
using namespace std;

int main()
{
    int n, liczby;
    cin>>n;
    int tab[n];

    for(int i=0; i<n; i++){{
        cin>>liczby;
        tab[i]=liczby;
    }
         if(tab[i]+tab[i]<tab[i])
            cout<<"jest trojka takich liczb";
    }

    return 0;
}
5
if(tab[i]+tab[i]<tab[i])

Wiesz co robi ten if ?
Sprawdza czy istnieje w tablicy liczba której suma z samym sobą jest mniejsza od niej samej takie warunki spełniają tylko liczby ujemne. Raczej nie jest to co chcesz sprawdzać.

0
for(int i=0;i<n;++i)
{
    for(int j=i+1;j<n;++j)
    {
        for(int k=j+1;k<n;++k)
        {
            if
            (
                (tab[i]+tab[j]>=tab[k])&&
                (tab[i]+tab[k]>=tab[j])&&
                (tab[j]+tab[k]>=tab[i])
            )
            cout<<tab[i]<<" "<<tab[j]<<" "<<tab[k]<<endl;
        }
    }
}
3

Jedyna rzecz, która Cię interesuje to zależność, że dowolne dwa boki trójkąta zawsze są dłuższe niż trzeci. Wobec tego:

  • posortuj sobie wszystkie boki (albo zapamiętuj dwie wartości minimalne i jedną maksymalną podcza wczytywania)
  • sprawdź czy dwa najkrótsze są dłuższe od najdłuższego
  • jeśli tak - to dłuższe od nich też będą dłuższe
  • jeśli nie - to udowodniłeś, że istnieją takie, które nie tworzą trójkąta

1 użytkowników online, w tym zalogowanych: 0, gości: 1