[Lekcja 18] Czy da się pododawać wszystkie wypisane liczby programie za pomocą pętli do... while?
Ostatnio zmodyfikowano 2016-06-26 10:28
| _barto567_ Temat założony przez niniejszego użytkownika | [Lekcja 18] Czy da się pododawać wszystkie wypisane liczby programie za pomocą pętli do... while? » 2016-06-25 17:21:29 Jak (jeśli w ogóle) da się pododawać wszystkie liczby w pętli do... while w zadaniu: 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. Program ma wykorzystywać tablicę, która zostanie najpierw wypełniona liczbami losowymi z określonego przedziału, a następnie wynik zostanie obliczony na podstawie zawartości całej tablicy. ?Czy po prostu pododawać te wszystkie liczby ( czyli 999 ) pisząc normalnie: nazwa_tablicy[ 1 ] + nazwa_tablicy[ 2 ] + zmienna[ 3 ]
 + nazwa_tablicy[ 4 ]... + nazwa_tablicy[ 996 ] + nazwa_tablicy[ 997 ] + nazwa_tablicy[ 998 ] + nazwa_tablicy[ 999 ]...
 #include <iostream>
 #include <cstdlib>
 #include <ctime>
 using namespace std;
 int main()
 {
 srand( time( NULL ) );
 int liczby[ 999 ];
 int licznik = 0;
 do
 {
 liczby[ licznik ] =( rand() % 6 ) + 4;
 licznik++;
 } while( licznik < 999 );
 std::cout << "Wylosowane są nastepujace liczby: ";
 licznik = 0;
 do
 {
 std::cout << liczby[ licznik ] << ", ";
 licznik++;
 }while( licznik < 999 );
 return 0;
 }
 
 Z góry dziękuję za pomoc :) !
 P.S
 
 Jakby się nie dało to moglibyście to napisać, że się nie da?
 
 | 
|  | 
| carlosmay | » 2016-06-25 18:57:14 | Jakby się nie dało to moglibyście to napisać, że się nie da? | 
 Da się :) (i to na kilka sposobów). Rozbij program na funkcje: - pierwsza niech losuje i zwraca liczbę z zadanego przedziału, - druga niech wypełni przekazaną tablicę za pomocą pętli, - trzecia niech wypisze wszystkie wartości z tablicy, - czwarta niech zsumuje i zwróci wynik wszystkie wartości za pomocą pętli, - wynik wypisz w main(). #include <array>#include <iostream>
 #include <random>
 
 constexpr int SIZE = 999;
 std::random_device rd;
 std::mt19937 generator( rd() );
 
 int getRandomedNumber( int begin, int end )
 {
 std::uniform_int_distribution < int > distance( begin, end );
 return distance( generator );
 }
 
 void fillArray( std::array < int, SIZE >& arr, int begin, int end )
 {
 for( int i = 0; i < arr.size(); ++i ) {
 arr[ i ] = getRandomedNumber( begin, end );
 }
 }
 
 void printArray( std::array < int, SIZE >& arr )
 {
 for( int i = 0; i < arr.size(); ++i ) {
 std::cout << arr[ i ] << '\n';
 }
 }
 
 int comptArray( std::array < int, SIZE >& arr )
 {
 int sum = 0;
 for( int i = 0; i < arr.size(); ++i ) {
 sum += arr[ i ];
 }
 
 return sum;
 }
 
 int main()
 {
 int begin = 4;
 int end = 10;
 
 std::array < int, SIZE > arr { };
 
 fillArray( arr, begin, end );
 printArray( arr );
 std::cout << "Suma wszystkich elementów tablicy wynosi: " << comptArray( arr ) << '\n';
 }
@edit: funkcja sumująca z użyciem  do { } while; int comptArray( std::array < int, SIZE >& arr ){
 int sum = 0;
 
 std::size_t i = 0;
 do {
 sum += arr[ i++ ];
 } while( i < arr.size() );
 
 return sum;
 }
 | 
|  | 
| _barto567_ Temat założony przez niniejszego użytkownika | Dzięki ale... » 2016-06-26 10:28:20 Widać że się postarałeś mi odpowiedzieć  tylko ja jeszcze nie miałem tematu z tablicami i funkcją i ogólnie nie chce robić czegoś w sposób który jeszcze nie znam ale mimo wszystko dzięki. 
 P.S
 
 Wiem że to dziwne, ale ja takk mam :)
 Aczkolwiek jeśli bym chciał do tego zadania wrócić kiedy bym już się na tym znał to by to wykorzystał.
 | 
|  | 
| « 1 » |