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

Rozdział 19 zadanie domowe.

Ostatnio zmodyfikowano 2012-07-29 16:00
Autor Wiadomość
Robson
Temat założony przez niniejszego użytkownika
Rozdział 19 zadanie domowe.
» 2012-07-17 16:06:36
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.

Napisałem ten program:
C/C++
#include <iostream>
#include <ctime>
#include <cstdlib>

/* 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 */
int wylosuj( int tablica[], int ile )
{
    int i;
    i = 0;
    do
    {
        tablica[ i ] =( rand() % 7 ) + 4;
        std::cout << tablica[ i ] << std::endl;
        i++;
       
    } while( i < ile );
   
}

int obliczsume( int tablica[], int zilu )
{
    int i = 0;
    int suma = 0;
    do
    {
        suma = suma + tablica[ i ];
        i++;
    } while( i < zilu );
   
}

int main()
{
    srand( time( NULL ) );
    int suma;
    int liczby[ 999 ];
    wylosuj( liczby, 999 );
    suma = obliczsume( liczby, 999 );
    std::cout << suma << std::endl;
   
    return 0;
}
tylko nie podoba mi się to, że za każdym razem suma wynosi 768 ( u jednego gościa na forum też tak było ). Czy to jest poprawne? Sumy nie powinny być za każdym razem inne? ( liczby są różne, suma ta sama ) Myślę, że coś nie gra.
P-60368
diego997
» 2012-07-17 16:13:19
Jak co u mnie dobrze dziala ;p



Edit: w funkcji obliczsume dodalem na koncu return suma; a int wylosuj zmienilem na void wylosuj


BTW:: Dzwine ze ci sie kompilowalo int wylosuj jak nic nie zwracales ;p
P-60370
Robson
Temat założony przez niniejszego użytkownika
» 2012-07-29 14:48:04
Wiem, że działa. Interesuje mnie tylko, dlaczego wynik jest ZAWSZE 768. Patrzyłem kody innych tutaj na forum i u nich też 768 wychodzi za każdym razem. Troszeczkę to dziwne ;p
P-61373
OSA_PL
» 2012-07-29 16:00:47
Tak jak Ci napisał kolega wyżej, w funkcji obliczsume nie zwracasz żadnej wartości i dlatego taki wynik.
P-61378
« 1 »
  Strona 1 z 1