1 / 4
Jul 2017

Kod który napisałem nie kompiluje się. Gdzie popełniłem błąd? Wydaje mi się, że nie do końca rozumiem polecenie.

#include

using namespace std;
float suma,srednia,roznica[5],oceny[5],x,ile;
int main()
{
    cout<<"Podaj ile ma byc testow "<<endl;
    cin>>ile;
for(int i=0;i<ile;i++)
{
    suma=0, srednia=0, roznica[i]=0, oceny[i]=0, x=0;
    cout << "Podaj 5 liczb " << endl;
    for(int i=0;i<5;i++)
    {
        cin>>oceny[i];
        suma+=oceny[i];
    }
    srednia=suma/5;
    cout<<"Srednia wynosi "<<srednia<<endl;
    for (int i=0; i<5; i++)
    {
        if(srednia>oceny[i])
            {
                roznica[i]=srednia-oceny[i];
            }
        else if(srednia<oceny[i])
            {
                roznica[i]=oceny[i]-srednia;
            }
    }
    x=1000;
    for(int i=0;i<5;i++)
    {
        if(roznica[i]<x)
        {
            x=roznica[i];
        }
    }
    for(int i=0;i<5;i++)
    {
    if(roznica[i]==x) x=oceny[i];
    }
    cout<<"Najblizej sredniej jest liczba "<<x<<endl;
}
    return 0;
}
  • created

    Jul '17
  • last reply

    Jul '17
  • 3

    replies

  • 461

    views

  • 3

    users

1)
Faktycznie nie zrozumiałeś polecenia.
Pierwsza liczba - liczba testów.
Druga liczba mówi z ilu liczb ma zostać policzona ta średnia.

przykład wywołania :
2
3 9 8 4
4 4 3 2 1

i teraz oznacza to, że :
mamy 2 testy - w pierwszym teście zostaną podane 3 liczby : 9 , 8 , 4
natomiast w drugim teście 4 liczby: 4 , 3 , 2 , 1
wynikami tych testów są : 8 , 3

2) Dlaczego masz oceny[5]?
Tych ocen może być : 0 < n < 100
chociażby taki przykład wywołania
1
9 0 1 2 3 4 5 6 7 8

wynikiem tego testu jest : 4

dODATKOWO nie rozróżniasz kiedy sędzia "mówi" błędna odpowiedź a kiedy naprawdę "mówi" błąd kompilacji i twój program naprawdę nie kompiluje się.

rozróżniam, przepraszam źle się wyraziłem.

Dziękuje wam, teraz rozumiem. Biorę się za robienie zadania.