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

Szesnastkowo

Ostatnio zmodyfikowano 2009-10-10 18:13
Autor Wiadomość
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 :/):

C/C++
#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.
P-10790
« 1 »
  Strona 1 z 1