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

Sumowanie wartości losowych

Ostatnio zmodyfikowano 2011-03-20 15:18
Autor Wiadomość
wojtek1150
Temat założony przez niniejszego użytkownika
Sumowanie wartości losowych
» 2011-03-19 22:22:58
Witam wszystkich.

Zacząłem czytać poradnik C++. Doszedłem do momentu z tablicami jednowymiarowymi. Jest tam zadanie domowe do wykonania. Bardzo przydatne, gdyż wiele można się nauczyć. Jednak nie było nigdzie wzmianki o sumowaniu losowych liczb. Z wprowadzanymi liczbami nie byłoby problemu, prosta pętla, jednak tutaj mam trudności.

Program:


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

int main()
{
    int wylosowana_liczba[ 999 ], licznik = 0, losowa, wynik;
    srand( time( NULL ) );
    std::cout << "Podaj ile losowan - max 999" << std::endl;
    std::cin >> losowa;
    do
    {
        wylosowana_liczba[ licznik ] =( rand() % 7 ) + 4;
        licznik++;
    } while( licznik < losowa );
   
    std::cout << std::endl << "Wylosowane liczby: ";
    licznik = 0;
    do
    {
        std::cout << wylosowana_liczba[ licznik ] << ",";
        licznik++;
    } while( licznik < losowa );
   
    return 0;
}


Jakieś sugestie?
P-29419
mar3
» 2011-03-19 22:32:31
Kod c/c++ wstawiaj w znacznik [ code src="C++" ] ... [ /code ].(bez spacji po między [])

Może spróbuj tak
1.Tworzysz zmienną suma
2. Powiększasz ją o każdą wylosowaną liczbę
Tak wygląda gotowy kod:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

int main()
{
    int wylosowana_liczba[ 999 ], licznik = 0, losowa, wynik;
    srand( time( NULL ) );
    std::cout << "Podaj ile losowan - max 999" << std::endl;
    std::cin >> losowa;
    do
    {
        wylosowana_liczba[ licznik ] =( rand() % 7 ) + 4;
        licznik++;
    } while( licznik < losowa );
   
    std::cout << std::endl << "Wylosowane liczby: ";
    int suma = 0;
    licznik = 0;
    do
    {
        std::cout << wylosowana_liczba[ licznik ] << ",";
        suma += wylosowana_liczba[ licznik ];
        licznik++;
    } while( licznik < losowa );
   
    std::cout << "Suma wylosowanych liczb: " << suma << std::endl;
    system( "PAUSE" );
    return 0;
}
Skompilowałem ten kod u siebie pod Visual C++ 2010 EE i chyba wszystko dziana poprawnie. Dodałem też linijkę:
system( "PAUSE" );
. Żeby konsola się nie zamykała za razu po wyświetleniu wylosowanych liczb.
P-29420
malan
» 2011-03-19 23:31:48
@mar3: Nie dawaj gotowego kodu ;p. Kolega sam napisał, że chce sugestie, a nie gotowca.
P-29425
wojtek1150
Temat założony przez niniejszego użytkownika
» 2011-03-20 11:07:00
Jednak dało mi to podpowiedź...
Zrobiłem krócej (pętlą for), pętla:

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <stdio.h>

int main()
{
    //Stałe
    int a[ 999 ], i = 0, losowa, wynik = 0;
    srand( time( NULL ) );
    //Pobranie danych od użytkownika
    printf( "Podaj liczbe losowan (max. 999)\n" );
    scanf( "%d", & losowa );
    //Losowanie liczb
    do
    {
        a[ i ] =( rand() % 7 ) + 4;
        i++;
    } while( i < losowa );
    //wypisanie wylosowanych liczb
    printf( "\nWylosowane liczby:" );
    i = 0;
    do
    {
        printf( "%d,", a[ i ] );
        i++;
    } while( i < losowa );
    //zsumowanie liczb
    for( i = 0; i < losowa; i++ )
    {
        wynik += a[ i ];
    }
    printf( "\n\nSuma tych liczb wynosi: %d\n", wynik );
    system( "pause" );
    return 0;
}

Dzięki za sugestie, gotowce, czy jak kto woli to nazywać...
P-29437
mar3
» 2011-03-20 11:11:00
Dzięki za sugestie, gotowce, czy jak kto woli to nazywać...
Nie ma za co.
@mar3: Nie dawaj gotowego kodu ;p. Kolega sam napisał, że chce sugestie, a nie gotowca.
Następnym razem dam tylko sugestie.
P-29438
pekfos
» 2011-03-20 12:17:31
Kod c/c++ wstawiaj w znacznik [ code src="C++" ] ... [ /code ].(bez spacji po między [])

co wy z tymi spacjami? i czemu nowym nie polecicie krótszego aliasu?
[cpp] kod [/cpp]
P-29440
mar3
» 2011-03-20 12:56:55
P-29446
pekfos
» 2011-03-20 14:58:37
parę linii niżej jest "Dostępne aliasy:" :P
P-29457
« 1 » 2
  Strona 1 z 2 Następna strona