Zerowanie tych samych elementów tablicy.

0
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(int argc, char *argv[]) 
{	
	int tab[] = {2,2,3,4,1,2,3,53,5,6}	;
	int j,i,a;
	
	for(j=0; j<=9; j++)
	{
		for(i=0; i<=9; i++)
		{
			if(tab[j] == tab[i])
				tab[i] = 0;
			else
				continue;
		}
	}
	
	for(a=0; a<=9; a++)
	{
		printf("%d " ,tab[a]);
	}
	
	return 0;
}

Program ma za zadanie wyzerować elementy w tablicy które się powtarzają . Np {2,2,3,4,1,2,3,53,5,6} wynik : {2,0,3,4,1,0,0,53,5,6}

Wynikiem powyższego kodu to same Zera . Próbowałem śledzić jak to działa i wydaje się być ok a jednak nie działa ...

0
    for(j=0;j<sizeof(tab)/sizeof(*tab);++j) for(i=0;i<j;++i) if(tab[j]==tab[i]) tab[i=j]=0;
0

Dzięki , działa . Musze trochę poanalizować , bo jak to nie mam pojęcia .

Jeśli chciałbyś mi wytłumaczyć jak działa

or(j=0;j<sizeof(tab)/sizeof(*tab);++j)

?

0

tab - twoja tablica
*tab - pierwszy element tablicy
sizeof - http://en.cppreference.com/w/cpp/language/sizeof
for - http://www.cplusplus.com/doc/tutorial/control/#for

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