Когда вы вставите j в установленное значение l oop, это j = i + 1, что приведет к ошибке, поскольку вы не будете проверять сам индекс, поэтому он будет учитываться как 3, а не 4, так как первый счет не будет засчитан поэтому результат будет 1, а не 3 * / поэтому вы должны поставить j = 0, и он будет работать успешно
#include <stdio.h>
#define size 15
int array_oddrepretition(int * ptr , int n);
int main()
{ int res;
int arr[]={1,2,3,1,2,3,1,1,1,1,3,3,3};
res=array_oddrepretition(arr, size);
printf("Number is : %d",res);
return 0;
}
int array_oddrepretition(int * ptr , int n)
{
int i,j,count=0,index=0;
for(i=0 ; i<size ; i++)
{
for(j=0 ; j<size ; j++)
{
if(ptr[i]==ptr[j])
{
index=i;/* to be able to return the value of this number*/
count++;
}
}
/*so if ptr[j] != ptr [i] we need to check if it odd or not
*if odd break; and return num * if even reset he count and start i=1*/
if(count %2 != 0)
{
break;
}
/* reset the count value before check for the next array element */
count=0;
}
return ptr[index];
}