Skocz do zawartości

Program obliczający średnią wieku......


novix8

Rekomendowane odpowiedzi

Witam wszystkich, mam nadzieje, że znajdzie się tutaj ktoś kto będzie w stanie mi pomóc.

Mam zadanie z Programowania... mianowicie chodzi oto, że mam napisać program wykorzystujący 2 pętle(while,for albo do-while) obliczający średnią wieku, wzrostu i wagi 10 przypadkowych ludzi.

Jeśli by mi ktoś pomógł był bym bardzo wdzięczny ;)

Pozdrawiam i z góry dziękuje ;)

Odnośnik do komentarza
Udostępnij na innych stronach

#include <stdio>
#include <vector>

class CPerson
{
public:
    CPerson( float old, float height, float weight )
        : mOld( old ), mHeight( height ), mWeight( weight )
    {}

    float getOld( void ) { return mOld; }
    float getHeight( void ) { return mHeight; }
    float getWeight( void ) { return mWeight; }

private:
    float mOld, mHeight, mWeight;
};

#define PERSON_OLD 0
#define PERSON_HEIGHT 1
#define PERSON_WEIGHT 2

typedef unsigned int uint;

float* average_persons( std::vector<CPerson> &vec )
{
    float result[3] = { 0 };

    for( uint n = 0; n < vec.size(); n++ )
    {
        result[PERSON_OLD] += vec[n].getOld();
        result[PERSON_HEIGHT] += vec[n].getHeight();
        result[PERSON_WEIGHT] += vec[n].getWeight();
    }

    for( uint n = 0; n < 3; n++ )
        result[n] /= (float)vec.size();

    return result;
}

int main()
{
    std::vector<CPerson> persons;
    persons.push_back( CPerson( 1, 2, 3 ) );
    persons.push_back( CPerson( 2, 3, 4 ) );

    float *res = average_persons( persons );
    printf( "Averages:\nOlds: %f\nHeights: %f\nWeights: %f\n",
        res[PERSON_OLD], res[PERSON_HEIGHT], res[PERSON_WEIGHT] );

    getchar();
    return 0;
}

Proste zadanie, wystarczy wiedzieć JAK się oblicza średnią :)

 

Btw. Osoby dodaje się po przez: 'persons.push_back( CPerson( x, y, z ) );'

Odnośnik do komentarza
Udostępnij na innych stronach

float* average_persons( std::vector<CPerson> &vec )

{

float result[3] = { 0 };

 

for( uint n = 0; n < vec.size(); n++ )

{

result[PERSON_OLD] += vec[n].getOld();

result[PERSON_HEIGHT] += vec[n].getHeight();

result[PERSON_WEIGHT] += vec[n].getWeight();

}

 

for( uint n = 0; n < 3; n++ )

result[n] /= (float)vec.size();

 

return result;

}

 

Znajdź błąd w swoim kodzie.

Odnośnik do komentarza
Udostępnij na innych stronach

Ależ Konradzie, pomyśl ; D - skoro dostał tego typu zadanie to na pewno nie miał styczności czymś takim jak prog. obj. . Z tego co pamiętam tego typu rzeczy robiło się na tablicach.

#include <iostream>

using namespace std;

int tab[10][2],
    sred[2],
    ludzie=10;

int main()
{
    for (int i = 0; i < ludzie; i ++)
    {
        tab[i][0] = rand()%100; // wiek
        tab[i][1] = 150+(rand()%60); // wzrost
        tab[i][2] = 50+(rand()%60); // waga
        for (int a = 0; a < 3; a++)
        {
            sred[a] += tab[i][a];
        }
    }
    for (int a = 0; a < 3; a++)
    {
        sred[a] = sred[a]/ludzie;
        cout << "sred" << a << "= " << sred[a] << endl;
    }
    return false;
}

Odnośnik do komentarza
Udostępnij na innych stronach

Oki doki Will:

float* average_persons( std::vector<CPerson> &vec )
{
    float result = new float[3];
    result[0] = result[1] = result[2] = 0.0f;

    for( uint n = 0; n < vec.size(); n++ )
    {
        result[PERSON_OLD] += vec[n].getOld();
        result[PERSON_HEIGHT] += vec[n].getHeight();
        result[PERSON_WEIGHT] += vec[n].getWeight();
    }

    for( uint n = 0; n < 3; n++ )
        result[n] /= (float)vec.size();

    return result;
}

:3

Odnośnik do komentarza
Udostępnij na innych stronach

ech to jest lekko przerobiona wersja kuby:

#include <iostream>
#include <conio.h>
using namespace std;

int tab[10][2],
    sred[2],
    ludzie=10;

int main()
{
    for (int i = 0; i < ludzie; i ++)
    {
        tab[i][0] = rand()%100; // wiek
        tab[i][1] = 150+(rand()%60); // wzrost
        tab[i][2] = 50+(rand()%60); // waga
        for (int a = 0; a < 3; a++)
        {
            sred[a] += tab[i][a];
        }
    }
    for (int a = 0; a < 3; a++)
    {
        sred[a] = sred[a]/ludzie;
        cout << "sred" << a << "= " << sred[a] << endl;
        getch();
    }
    return false;
}

a ty Konrad-GM strasznie mu mieszasz on raczej nie miał o wektorach...

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...