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

Lekcja 19, losowanie a wynik dodawania

Ostatnio zmodyfikowano 2012-01-19 11:34
Autor Wiadomość
Mioka
Temat założony przez niniejszego użytkownika
Lekcja 19, losowanie a wynik dodawania
» 2011-12-10 23:27:34
napisałem taki kod
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int losuj( int liczba[ 999 ] )
{
    srand( time( NULL ) );
    int licznik = 0;
    liczba[ 999 ];
    int a = 7;
    int b = 4;
    liczba[ licznik ] =( rand() % a ) + b;
   
}
int pisz( int liczba[] )
{
    srand( time( NULL ) );
    liczba[ 999 ];
    int licznik = 0;
   
    losuj( liczba );
   
    do
    {
        liczba[ licznik ] =( rand() % 7 ) + 4;
        cout << liczba[ licznik ] << ",";
        licznik++;
    } while( licznik < 999 );
   
    licznik = 0;
}
int obliczSume( int liczba[] )
{
    srand( time( NULL ) );
    liczba[ 999 ];
    int licznik = 0;
    pisz( liczba );
    int suma;
    do
    {
        suma = liczba[ licznik ] + suma;
        licznik++;
    } while( licznik < 999 );
   
    std::cout << suma << endl;
}
int main()
{
    srand( time( NULL ) );
    int liczba[ 999 ];
    losuj( liczba );
    pisz( liczba );
    int iSuma = obliczSume( liczba );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}
Nie wiem tylko czemu nie zmienia on wyniku dodawania, zmienia on wyniki losowania, lecz dodawania nie. Szukałem błędów jednak ich nie znalazłem.
P-45436
DejaVu
» 2011-12-11 08:21:29
C/C++
int licznik = 0;
//...
liczba[ licznik ] =( rand() % a ) + b;
P-45442
Mioka
Temat założony przez niniejszego użytkownika
» 2011-12-11 12:03:33
Niestety DejaVu nie zrozumiałem gdzie popełniłem błąd. Jak możesz to opisz go słownie i spróbuj naprowadzić jak mam go rozwiązać.
P-45470
pekfos
» 2011-12-11 16:46:41
liczba[ 999 ];

wtf?
P-45495
akwes
» 2011-12-11 16:50:31
i tak ogólnie to za dużo
srand( time( NULL ) );
P-45498
Mioka
Temat założony przez niniejszego użytkownika
» 2011-12-11 18:14:50
Pekfosie
liczba[ 999 ];
 jest to tablica jednowymiarowa.
Wiem, że użyłem za dużo
srand( time( NULL ) );
, ale myślałem, że brak zmienności dodawania jest winny temu, że w funkcjach nie ma tej linijki.
P-45521
pekfos
» 2011-12-11 18:19:28
To próba dostępu do 999 elementu i nie użycie wartości. Jest sens? nie ma!
P-45522
Mioka
Temat założony przez niniejszego użytkownika
» 2011-12-11 21:10:59
Poprawiony, lecz ciągle niedziałający tak jak powinien kod wygląda tak:
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int losuj( int liczba[] )
{
    int licznik = 0;
    int a = 7;
    int b = 4;
    liczba[ licznik ] =( rand() % a ) + b;
   
   
}
int pisz( int liczba[] )
{
    int licznik = 0;
    losuj( liczba );
    do
    {
        liczba[ licznik ] =( rand() % 7 ) + 4;
        cout << liczba[ licznik ] << ",";
        licznik++;
    } while( licznik < 999 );
   
    licznik = 0;
}
int obliczSume( int liczba[] )
{
   
    int licznik = 0;
    int suma;
    do
    {
        suma = liczba[ licznik ] + suma;
        licznik++;
    } while( licznik < 999 );
   
    std::cout << suma << endl;
}
int main()
{
    srand( time( NULL ) );
    int liczba[ 999 ];
    losuj( liczba );
    pisz( liczba );
    int iSuma = obliczSume( liczba );
    std::cout << "Suma liczb wynosi: " << iSuma << std::endl;
    return 0;
}
Wie ktoś czemu nie sumuje on cyfr, które są wylosowane, tylko dodaje stałe liczby?
P-45531
« 1 » 2 3
  Strona 1 z 3 Następna strona