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

C++ problem z wyswietlaniem kolejno po sobie

Ostatnio zmodyfikowano 2016-05-09 22:45
Autor Wiadomość
Poczatkujacy1
Temat założony przez niniejszego użytkownika
C++ problem z wyswietlaniem kolejno po sobie
» 2016-05-09 19:59:36
Witam,

Ucze sie podstaw C++, mam problem z nizej opisanym zadaniem, mimo udzielonej na koncu podpowiedzi. Robie cos zle, najpewniej robiac jakis podstawowy blad, Czy moge liczyc na poprawiony kod w odpowiedzi, lub jeszcze bardziej precyzyjna rade. Dzieki !

 

 

Tresc zadania:

Wczytywać znaki (zmienne typu char) pojedynczo (znak po znaku) aż pierwszy lub drugi wczytany znak powtórzą się dwa razy. Wydrukować informację:

a) których znaków wczytano więcej: małych liter czy cyfr (lub informację, że było ich tyle samo)

b) ile razy dwa średniki stały obok siebie (tzn. wczytano kolejno po sobie dwa średniki).

 

moja proba:
http://wklej.org/id/2381151/

Podpowiedz mi udzielona:

"ogolnie jest dobrze, pojawiają się problemy, jeśli jako jeden z pierwszych znaków wpisany jest średnik (np a ; a a - wyświetla jedno wystąpienie średników po sobie).
 

przemysl warunki (tylko jeden jest potrzebny):


if (check1 != ';'&& check2 !=';') {licznik = 0;}
else if (check1 == ';'&& check2 !=';') {licznik = 0;}
else if (check1 == ';'&& check2 ==';') {licznik = 2;}
else if (check1 != ';'&& check2 ==';') {licznik = 1;}

oraz ustawienie wartości zmiennej akt_znak przed pętlą while."
P-148073
carlosmay
» 2016-05-09 22:45:29
Wstawiaj kod formatowany w znacznikach i na forum, a nie odnośniki do stron.

ogolnie jest dobrze, pojawiają się problemy, jeśli jako jeden z pierwszych znaków wpisany jest średnik
To nie jest dobrze.

przemysl warunki (tylko jeden jest potrzebny):
Raczej jeden nie wystarczy.

C/C++
{
    char ch;
    bool flag = false;
    int digits = 0;
    int alphas = 0;
    int double_semicolons = 0;
    while( std::cin.get( ch ) && ch != '\n' )
    {
        if( ch >= 'a' && ch <= 'z' )
        {
            ++alphas;
            flag = false;
        }
        else if( ch >= '0' && ch <= '9' )
        {
            ++digits;
            flag = false;
        }
        else if( ch == ';' )
        {
            if( flag == false )
                 flag = true;
            else
            {
                ++double_semicolons;
                flag = false;
            }
        }
        else
        {
            flag = false;
        }
    }
}
P-148074
« 1 »
  Strona 1 z 1