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

Rozdział 19 Zadanie domowe

Ostatnio zmodyfikowano 2014-10-25 10:00
Autor Wiadomość
wirusomaniak
Temat założony przez niniejszego użytkownika
Rozdział 19 Zadanie domowe
» 2014-10-24 21:42:52
Witam mój program po kompilacji i uruchomieniu nie jest zgodny z treścią polecenia:

Napisz program, który wylosuje 999 liczb całkowitych z zakresu od 4 do 10 włącznie, wypisze te wartości na ekran, po czym zsumuje je i wynik wypisze na ekran. Wszelkie operacje mają zostać zrealizowane w oparciu o funkcje. Tablica ma być zadeklarowana w funkcji main. Oczekiwane funkcje:
Wypełnienie tablicy o podanym rozmiarze losowymi liczbami z przedziału podawanego przez argumenty funkcji.
Sumowanie określonej ilości liczb znajdujących się w tablicy i zwrot wyniku.
Wypisywanie zawartości tablicy.
Przykładowa implementacja funkcji main:
C/C++
int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 10 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}
Kod mojego programu to
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int wylosujLiczby( int t[], int iRozmiar, int b, int c )
{
   
    int i = 0;
    do
    {
        srand( time( NULL ) );
        t[ i ] =( rand() % c ) + b;
        i++;
    } while( i < iRozmiar );
   
    return 0;
}
int wypiszLiczby( int a[], int Rozmiar )
{
   
    cout << "Podales nastepujace liczby: ";
    int licznik = 0;
    do
    {
        cout << a[ licznik ] << ", " << endl;
        licznik++;
    } while( licznik < Rozmiar );
   
    return 0;
}
int obliczSume( int a[], int rozmiar )
{
   
    int wynik;
    int licznik = 0;
    int licznik2 = 1;
   
   
    do
    {
        wynik += a[ licznik ];
        licznik++;
        licznik2++;
    } while( licznik != rozmiar );
   
    return wynik;
   
}
int main()
{
    int tablica[ 999 ];
    wylosujLiczby( tablica, 999, 4, 7 );
    wypiszLiczby( tablica, 999 );
    int iSuma = obliczSume( tablica, 999 );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}
Czy moglibyście udzielić mi jakiś wskazówek co źle robię?
P-119333
1aam2am1
» 2014-10-24 21:50:29
srand(time(NULL)); na początku main

t[ i ] =( rand() % c ) + b; //jest złe
b = 4
c = 10
t[ i ] =( rand() % (c-b+1)) + b; //tak ma być chyba
P-119335
wirusomaniak
Temat założony przez niniejszego użytkownika
» 2014-10-24 22:03:38
Dziękuję zapomniałem dodać linijki z null w funkcji main jeszcze raz dzięki za pomoc .
P-119337
wirusomaniak
Temat założony przez niniejszego użytkownika
» 2014-10-25 09:56:34
Mam jeszcze jedno pytanie dlaczego wylosowane liczby maja tylko cały czas tą samą wartość np. 999 razy wylosuje mi się cyfra 4 ?
P-119355
wirusomaniak
Temat założony przez niniejszego użytkownika
» 2014-10-25 10:00:31
Aha dobra już rozwiązałem ten problem poprostu w programie dwa razy była umieszczona funkcja null  na początku main i na poczatku funkcji wylosuj liczby gdy usunąłem linijke null z funkcji wylosuj liczby i zostawiłem tylko jedną w main to wszystko działa poprawnie.Zamykam temat.
P-119356
« 1 »
  Strona 1 z 1