Tablice jednowymiarowe
Ostatnio zmodyfikowano 2015-06-05 17:18
BartC Temat założony przez niniejszego użytkownika |
Tablice jednowymiarowe » 2015-05-12 18:18:06 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. #include <iostream> #include <cstdlib> #include <ctime> int main() { srand( time( NULL ) ); std::cout << "Program wylosuje 999 liczb w zakresie od 4 do 10. " << std::endl; int liczba[ 999 ]; int licznik = 0; do { liczba[ licznik ] =(( std::rand() % 6 ) + 5 ); licznik++; } while( licznik < 999 ); std::cout << "Wylosowane liczby: " << std::endl; licznik = 0; do { std::cout << liczba[ licznik ] << std::endl; licznik++; } while( licznik < 999 ); std::cout << "Sumuje te liczby: " << std::endl; do { licznik = 0; } Jak zsumować te liczby prostszym sposobem niż wypisywanie po kolei. |
|
notabigthreat |
» 2015-05-12 18:40:20 Wystarczy zrobić sobie zmienną, na początku wynoszącą 0, przechowującą sumę tych liczb. Program wypisuje wszystkie te liczby w pętli. W tym samym miejscu możesz dodać do tej sumy właśnie wyświetlaną liczbę.
BTW, źle masz to modulo przy losowaniu. Powinieneś uzyskać liczbę od 0 do 6 i do niej dodać 4. Reszta z dzielenia przez 6 jest od 0 do 5 (mówiąc o liczbach dodatnich).
A co złego jest w przejściu przez tą tablicę jeszcze raz? |
|
Szymon2727 |
» 2015-05-15 19:31:34 http://cpp0x.pl/kursy/Kurs-C++/Poziom-1/Operacje-matematyczne/13
Inkrementacja w pętli zrobi swoje. |
|
Maciek |
» 2015-05-15 22:13:15 Moim zdaniem mogłbyś lepiej zastosować tablicę z STL - std::array (nagłowek <array>), nie musiał byś się przejmować też dodatkową zmienną określającą indeks tablicy (iteratory, taka tablica ma begin() i end()), do tego mógłbyś wykorzystać algrorytmy STL żeby sobie wylosować tablicę. Oczywiście jeśli to ma być C++ (STL jest częścią standardu języka). |
|
JMII89 |
» 2015-05-15 22:42:28 Maciek widzisz w jakiej on jest części kursu ?? Pierdzielisz mu o STL'ach jak on pewnie nie wie co to jest. |
|
damian955 |
» 2015-05-27 12:38:16 Ja ci pomogę, bo przed chwilą to też zrobiłem.
Jak już wypisane zostały liczby na ekran to:
Utwórz nową zmienną, może być dla int która będzie twoim wynikiem.
Za wynik wstaw pierwszą zmienną tablicy jednowymiarowej.
Później ustaw punkt licznika o jeden większy od tego co w wpisałeś w sumie.
Później zrób pętlę.
W pętli ustaw wynik do którego będzie się dodawać ogólnik w postaci liczby i licznikiu do sumy.
Dodaj następną linie aby za każdą pętlą licznik rósł o jeden.
dodaj warunek kończący pętlę, jeśli licznik osiągnie swój limit.
Sprawdź to na mniejszym zakresie, np od pierwszej do trzeciej liczby.
Nie podam ci całego kodu, bo możesz się tego nie nauczyć. A tak to chociaż pomyślisz. I tak masz wszystko na talerzu.
PS. Pamiętaj o zakresie przedziału tablic. |
|
Wafel |
» 2015-06-01 19:27:56 Dzień dobry, też miałem problem z tym zadaniem. Nie wiedziałem jak przypisać do tablicy liczby z losowania. Koniec końców stworzyłem takie coś #include <iostream> #include <cstdlib> #include <ctime> #include <cstdio> #include <windows.h> using namespace std; int main() { srand( time( NULL ) ); std::cout << "Program wylosuje 999 liczb w zakresie od 4 do 10. " << std::endl; int liczba[ 999 ]; int licznik = 0; long double suma = 0; do { liczba[ licznik ] =(( std::rand() % 7 ) + 4 ); licznik++; } while( licznik < 999 ); std::cout << "Wylosowane liczby: " << std::endl; licznik = 0; do { std::cout << liczba[ licznik ] << std::endl; licznik++; } while( licznik < 999 ); std::cout << "Sumuje te liczby: " << std::endl; licznik = 0; do { suma = suma + liczba[ licznik ]; licznik++; } while( licznik < 999 ); cout << "suma z tablic " << suma << endl; return 0; system( "PAUSE" ); }
Wydaje się dzialać poprawnie. Przy okazji wie ktoś co zrobić, żeby konsola wyświetlała wszystkie wyniki, a nie samą końcówkę? |
|
JMII89 |
» 2015-06-01 21:42:26 Nie da się wyświetlić 999 liczb w konsoli... |
|
« 1 » 2 |