Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problem z tablicami

Ostatnio zmodyfikowano 2019-05-22 21:41
Autor Wiadomość
Panniikt
Temat założony przez niniejszego użytkownika
Problem z tablicami
» 2019-05-20 21:01:33
Witajcie
Mam takie zadanie a właściwie jego część.
e. następnie wczytuje jeszcze N liczb całkowitych (N – stała całkowita) i drukuje, ile z nich różniło się co najwyżej o stałą rzeczywistą G od średniej tych N liczb (to wymaga zastosowania tablicy jednowymiarowej).

Rozumiem że mam tutaj sprawdzic ile liczb jest różnych od średniej o wartość nie większą od stałej rzeczywistej g. Stałą wczytuję cin'em.
Ale za cholerę nie mogę dojść jak porównać te liczby z tablicy oto co udało mi się wymyślić, niestety nie dział to poprawnie

C/C++
#include <iostream>
#include <cstdlib>

using namespace std;

int main( int argc, char * argv[] )
{
    int a;
    int naj;
    int b;
    int c = 0;
    int d;
    double srednia = 0;
    int tab[ 5 ];
    int z_pomocnicza = 0;
    double roznica;
    /*
        cout << "Zadanie nr. 3 - Maciej Saja" << endl;
        cout << "Podaj liczbe calkowita z zakresu od 0 do 10" << endl;
        do
        {
            cin >> a;
            if(a < 0 || a > 10)
            cout << "Podana liczba nie nalezy do wymaganego zakresu!!"<< endl;
        }while(a < 0 || a > 10);
   
        cout << "Druga czesc programu" << endl;
        cout << "wczytamy petla FOR liczbe liczb podanych w pierwszej petli" << endl;
        cin >> naj;
        cout << endl;
   
        for(int i = 1; i < a; i++)
        {
            cin >> b;
            if(b > naj)
            {
                naj = b;
            }
            cout << endl;
        }
   
        cout << "Trzecia czesc programu no i trzecia petla" << endl;
        cout << "Wczytuj cyfry z zakresu od -9 do 9, podanie innej cyfry zakonczy wczytywanie" << endl;
        while(c > -10 && c < 10)
        {
            cin >> c;
            if(c > naj)
            {
                naj = c;
            }
        }
        cout <<  "Najwieksza wczytana liczba to " << naj << endl;
        */
    cout << "No i czas na czwarta czesc. Zaczynamy" << endl;
    cout << "Podaj stala ktorej uzyjemy do porownania ze srednia wczytanych liczb " << endl;
    cin >> d;
    cout << endl;
    cout << "Wczytaj 5 liczb calkowitych do tablicy " << endl;
   
    for( int i = 0; i <= 4; i++ )
    {
        cin >> tab[ i ];
        srednia += tab[ i ];
       
    }
    srednia = srednia / 5;
    cout << "srednia " << srednia << endl;
   
   
    for( int i = 0; i <= 4; i++ )
    {
        if( tab[ i ] != srednia )
             roznica = tab[ i ] - srednia;
       
        if( roznica < d )
        {
            z_pomocnicza++;
        }
    }
    cout << z_pomocnicza << endl;
   
   
    system( "pause" );
    return 0;
}
P-174656
pekfos
» 2019-05-20 21:30:29
C/C++
for( int i = 0; i <= 4; i++ )
{
    if( tab[ i ] != srednia )
         roznica = tab[ i ] - srednia;
   
    if( roznica < d )
    {
        z_pomocnicza++;
    }
}
cout << z_pomocnicza << endl;
Po do obliczasz różnicę warunkowo? Jeśli jej nie obliczysz, porównujesz niezwiązane rzeczy. Do tego chcesz porównywać wartość bezwzględną różnicy, a nie o samą różnicę.
P-174657
Panniikt
Temat założony przez niniejszego użytkownika
» 2019-05-21 22:29:33
A możesz mi to trochę bardziej patologicznie wytłumaczyć lub podpowiedzieć bo dalej z tym leżę.
P-174668
Jacob99
» 2019-05-22 08:03:52
Usuń if-a.
Zamiast
C/C++
if( tab[ i ] != srednia )
     roznica = tab[ i ] - srednia
napisz samo
roznica = tab[ i ] - srednia
P-174669
Panniikt
Temat założony przez niniejszego użytkownika
» 2019-05-22 21:41:31
Czasami rozwiązanie przychodzi samo. Zrobione. Temat do zamkniecia.
P-174683
« 1 »
  Strona 1 z 1