Tablica symetryczna

0

Witam, muszę napisać funkcję sprawdzającą czy tablica jest symetryczna, poniżej jest mój kod , nie wiem co zrobić w momencie gdy 'i' przekroczy 'n/2', nie mogę stosować bocznych wyjść z pętli ! z góry dzięki za pomoc.

 int sym(int n,int tab[]){
 int i=0,flaga=1;
 while(flaga){
 	if(i<n/2){
 		if(tab[i]!=tab[n-1-i])
 			flaga=0;
 		i++;
	 }
	 else ???;
 }
 return flaga;
 } 
1
while( i < n/2 )

I teraz if(i<n/2) {} else {} jest zbędne
flaga jest zbędna.

jak wejdziesz do if(tab[i]!=tab[n-1-i]) to od razu zwracasz 0

na końcu funkcji zwracasz 1

1

gdy zwroci 0 to znaczy ze nie jest. Jak 1 to znaczy ze jest. Zrob sobie z tego funkcje i bedziesz miec

for (int i = 0, j = NUM_ELEMENTS - 1; i < j; i++, j--) {
    if (userArray[i] != userArray[j]) {
        printf("\nTa tablica nie jest symetryczna\n");
        return 0;
    }
}
return 1; 
0
int sym(size_t n,int tab[])
  {
   int *p=tab,*k=p+n;
   while((p<--k)&&(*p==*k)) ++p;
   return (p>=k);
  }

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