Sprawdzanie stringa - parzysta ilość takich samych cyfr

Sprawdzanie stringa - parzysta ilość takich samych cyfr
  • Rejestracja: dni
  • Ostatnio: dni
0

Nie mogę wymyślić dobrego warunku który sprawdzał by czy podana liczba posiada parzystą ilość takich samych cyfr

tablica znaków od 0 do 9 jest inkrementowana dla każdej występującej liczby

próbowałem kilkoma sposobami, ale są pewne logiczne błędy których nie mogę przeskoczyć

Kopiuj
 spr = 1;
	for(int i=0; i<10; i++)
	{
		if(tab[i]%2 != 0) 
		{
			printf("%d mod2 != 0\n", tab[i]);
			spr = 0;
		}
	}

tu przy jakiejkolwiek liczbie nie odpowiadającej warunkowi mamy spr = 0

Kopiuj
 for(int i=0; i<10; i++)
	{
		if(tab[i]%2 == 0)
		{
			if(tab[i] != 0)
				spr = 1;
		}
		else spr = 0;
	}

tu nie moge przeskoczyc 0%2 ktore zawsze daje 0 wiec mozna wpisac liczbe typu 0000 ale nie dziala 100

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
0
Kopiuj
spr = 1;
for (int i = 0; i < 10; ++i)
{
   if (tab[i] % 2 != 0)
   {
        spr = 0;
        break;
    }
}

Jak już jest źle spr == 0, to fakt że jest sobie jakaś para potem nie powinien ustawić spr = 1.

wujnia
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 161
0

Możesz też/ sprawdzać czy:

Kopiuj
 xxx == ( xxx >> 1 ) << 1;

To tak troszkę na boku dopowiedziane.

  • Rejestracja: dni
  • Ostatnio: dni
0

częściowo poradziłem sobie z problemem

Kopiuj
 	spr = 0;
	for(int i=0; i<10; i++)
		if(tab[i]%2 == 0 && tab[i]>0) spr = 1;

z akceptowaniem liczb typu 0000 jest jeszcze problem a chciałbym wszystko utrzymać w jednym warunku

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
0

Używaj mojego warunku, a wszystko będzie dobrze, nawet te zera.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.