[C++] Algorytm sekwencji kolejnych liczb całkowitych
Ostatnio zmodyfikowano 2013-06-22 15:28
bnk120 Temat założony przez niniejszego użytkownika |
[C++] Algorytm sekwencji kolejnych liczb całkowitych » 2013-06-19 17:56:16 Witam. Potrzebuję podpowiedzi z jednym zadaniem. Treść tego zadania brzmi tak : "Uzupełnij tablicę tab[5] dowolnymi liczbami całkowitymi. Wypisz sekwencje kolejnych liczb, np. w tablicy tab[5] = { 1,2,3,4,5 } sekwencjami są : 1 2, 1 2 3, 1 2 3 4, 1 2 3 4 5, 2 3, 2 3 4, 2 3 4 5, 3 4, 3 4 5, 4 5. " Tyle udało mi się wyłuskać: #include <iostream>
using namespace std;
int main() { int tab[ 5 ]; int flaga; for( int i = 0; i < 5; ++i ) cin >> tab[ i ]; for( int k = 0; k < 5; ++k ) { flaga = tab[ k + 1 ]; if( flaga - tab[ k ] == 1 ) { cout << tab[ k ] << " " << flaga << endl; for( int i = k + 1; i < 5; ++i ) { if( tab[ i + 1 ] - flaga == 1 ) { cout << tab[ k ] << " " << flaga << " " << tab[ i + 1 ] << endl; flaga = tab[ i + 1 ]; } } } } system( "PAUSE" ); return 0; }
Nie chodzi mi o rozwiązanie, tylko o naprowadzenie... |
|
cichociemny |
» 2013-06-20 00:38:54 Kierunek myslenia prawidlowy, przydatna zagniezdzona petla for, ale przekombinowales . Po co to cin I flaga ? ps Jesli cin to popros uzytkownika o wprowadzenie swoich 5 liczb do tablicy |
|
unimator |
» 2013-06-22 15:28:23 Daję gotowy kod bo nie umiem tego słownie wytłumaczyć. Zresztą - mówi sam za siebie. void wypisz_sekwencje( int *, int, int );
int main() { const int tab_size = 5; int tab[ tab_size ] = { 1, 2, 3, 4, 5 }; for( int i = 0; i < tab_size; ++i ) { for( int j = 2; j <= tab_size - i; ++j ) { wypisz_sekwencje( tab, i, j ); } } return 0; }
void wypisz_sekwencje( int * tab, int first, int q ) { for( int i = 0; i < q; ++i ) { printf( "%u ", tab[ first + i ] ); } printf( "\n" ); }
|
|
« 1 » |