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

Średnia większa od sumy gubienie wyników

Ostatnio zmodyfikowano 2018-01-30 15:37
Autor Wiadomość
Beginner777
Temat założony przez niniejszego użytkownika
Średnia większa od sumy gubienie wyników
» 2018-01-30 01:57:23
1. Napisać program pobierający od użytkownika wartości całkowite aż do podania wartości 0
kończącej pobieranie i wypisujący te trójki kolejno podawanych liczb, dla których średnia
pierwszej i trzeciej liczby jest większa od sumy liczby drugiej oraz wylosowanej wcześniej liczby R
(gdzie R ma być liczbą całkowitą z przedziału [1,100]). Program ma wypisać po zakończeniu
podawania liczb ile było takich trójek (końcowe zero nie jest brane pod uwagę).
Przykład: dla liczby R=3 oraz ciągu wartości 1 4 2 7 1 -2 2 0 wypisane mają być 2 trójki: (4 2 7)
i (1 -2 2) oraz informacja, że były 2 trójki
////////////////////////////////////////////////////////////////////////////////////////////
Co robię źle?
C/C++
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;


int main()
{
    srand( time( NULL ) );
    int a;
    int b;
    int n;
    int zliczanie = 0;
    int suma = 0;
    int r = 3;
    float srednia = 0;
   
    do
    {
       
        cout << "Podawaj liczby:" << endl;
        cin >> n;
       
        if( b == a )
        {
            b = n;
        }
        else
        {
            if( a == 0 )
            {
                a = n;
            }
            else
            {
                srednia =( b + n ) / 2;
                suma = a + r;
                if( srednia > suma )
                {
                    cout << " " << b << " " << a << " " << n;
                    zliczanie++;
                }
               
            }
            b = a;
            a = n;
            suma = 0;
            srednia = 0;
        }
       
       
    }
    while( n != 0 );
   
    if( zliczanie != 0 )
    {
        cout << "Trojek bylo:" << " " << zliczanie << endl;
    }
   
   
    return 0;
}
P-169129
geceves
» 2018-01-30 02:26:44
C/C++
if( b == a )
Ile wynosi w tym miejscu b (oraz a) podczas pierwszego wykonania? Generalnie cały czas używasz niezainicjalizowanych zmiennych.
P-169130
Beginner777
Temat założony przez niniejszego użytkownika
» 2018-01-30 02:33:13
poprawiłem ale dalej wywala błąd
C/C++
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;


int main()
{
    srand( time( NULL ) );
    int a = 0;
    int b = 0;
    int n = 0;
    int zliczanie = 0;
    int suma = 0;
    int r = 3;
    float srednia = 0;
   
    do
    {
       
        cout << "Podawaj liczby:" << endl;
        cin >> n;
       
        if( b == 0 )
        {
            b = n;
        }
        else
        {
            if( a == 0 )
            {
                a = n;
            }
            else
            {
                srednia =( b + n ) / 2;
                suma = a + r;
                if( srednia > suma )
                {
                    cout << endl;
                    cout << " " << b << " " << a << " " << n;
                    zliczanie++;
                }
               
            }
            b = a;
            a = n;
           
        }
       
       
    }
    while( n != 0 );
   
    if( zliczanie != 0 )
    {
        cout << "Trojek bylo:" << " " << zliczanie << endl;
    }
   
   
    return 0;
}
P-169131
darko202
» 2018-01-30 10:51:13
Jakbyś jeszcze napisał jaki masz komunikat błędu ?
to mielibyśmy szansę Ci pomóc :)
P-169133
pekfos
» 2018-01-30 15:37:15
Masz operować tylko na trójkach, więc nie ma sensu nic robić, póki nie wczytasz przynajmniej 3 liczb.
C/C++
cin >> pierwsza >> druga >> trzecia;

{
    // tu test
   
    pierwsza = druga;
    druga = trzecia;
    cin >> trzecia;
}
P-169135
« 1 »
  Strona 1 z 1