Sprawdzanie stringa - parzysta ilość takich samych cyfr

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ć

 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

 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

0
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.

0

Możesz też/ sprawdzać czy:

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

To tak troszkę na boku dopowiedziane.

0

częściowo poradziłem sobie z problemem

 	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

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1