Witam,
jak widzę nie jestem jedyny, który ma problem z zadaniem.
Wydawało mi się, że z matematyki jestem dość dobry, jednak chyba trzeba zweryfikować tą tezę.
O ile rozumiem jak wychodzi odpowiedź w pierwszych dwóch wypadkach, o tyle zupełnie nie rozumiem, jak przy tych samych założeniach wychodzi odpowiedź 2 w trzecim przypadku.
Może mi to ktoś wytłumaczyć? Jak dla mnie to pierwszą liczbą, która spełnia warunki jest liczba 3 i jest ona wcześniej niż liczba 2, więc powinna to ona zostać użyta, a nie liczba 2.
Poniżej dodam jeszcze mój kod:
include
include
include
using namespace std;
double a[5], suma=0, ile;
double srednia;
int m[5];
int main()
{
cin >> ile;
for (int i=0; i<=ile; i++)
{
cin >> a[0] >> a[1] >> a[2] >> a[3] >> a[4];
suma = a[0]+a[1]+a[2]+a[3]+a[4];
srednia = suma / 5;
for (int i=0; i<5; i++)
{
if (a[i]<srednia) m[i]=srednia-a[i];
else m[i]=a[i]-srednia;
}
float x;
x=m[0];
if (x>m[1]) x = m[1];
if (x>m[2]) x = m[2];
if (x>m[3]) x = m[3];
if (x>m[4]) x = m[4];
if ((m[0]<=m[1]&&m[0]<=m[2]&&m[0]<=m[3]&&m[0]<=m[4])) cout <<a[0];
else if ((m[1]<=m[0]&&m[1]<=m[2]&&m[1]<=m[3]&&m[1]<=m[4])) cout <<a[1];
else if ((m[2]<=m[0]&&m[2]<=m[1]&&m[2]<=m[3]&&m[2]<=m[4])) cout <<a[2];
else if ((m[3]<=m[0]&&m[3]<=m[1]&&m[3]<=m[2]&&m[3]<=m[4])) cout <<a[3];
else if ((m[4]<=m[0]&&m[4]<=m[1]&&m[4]<=m[2]&&m[4]<=m[3])) cout <<a[4];
cout << endl;
}
cout << endl;
return 0;
}
Kreatywne odpowiedzi mile widziane 