Szesnastkowo
Ostatnio zmodyfikowano 2009-10-10 18:13
Lord_Voldemort Temat założony przez niniejszego użytkownika |
Szesnastkowo » 2009-10-10 18:13:31 Witam mam problem z pewnym zadankiem i liczę na waszą pomoc. Proszę napisać program, którego zadaniem będzie pobranie ze standardowego wejścia ciągu znaków o długości N i zapisanie do standardowego wyjścia wydzielonego z niego fragmentu o długości K. Należy uwzględnić następujące wytyczne: *znaki w ciągu wejściowym są cyframi lub literami alfabetu angielskiego od A do F; *duże i małe litery są utożsamiane; *znaki należy interpretować jako cyfry systemu szesnastkowego; *1<N<100 i powinno zostać określone przez długość wczytanego ciągu; *K<N i jest wartością pierwszej cyfry szesnastkowej w ciągu; *wyszukiwany fragment powinien mieć największą sumę cyfr szesnastkowych. Dla przykładowych danych wejściowych: 3aF9ed56 Wynikiem powinno być: F9e Mój kod(niestety niesprawny :/): #include <iostream> #include <queue>
using namespace std;
int suma = 0, licznik = 0; int main() { queue < int > tablica; int dlugosc; int tab[ 100 ]; cin >> dlugosc; for( int i = licznik; i < dlugosc; ++i ) { cin >> tab[ i ]; } for( int i = licznik; i < tab[ 100 ] && i < tab[ 0 ]; ++i ) { suma += tab[ i ]; if( suma > tablica.back() ) { tablica.front() = suma; tablica.back() = licznik; } licznik++; } for( int i = tablica.back(); i < tab[ 0 ]; ++i ) { cout << tab[ i ]; } cout << endl; system( "PAUSE" ); } W kodzie nie umiałem zastosować konwersji charów na int. Proszę o pomoc i z góry dziękuję za wskazówki. |
|
« 1 » |