# in my code it is reading infinite elements why?

``````/* c program to find largest subarray whose elements add upto 0
it keep on reading for elements I do not why? for example if i give input
as 4 as number of elements it has to take 4 elements for some elements it
is working fine for some like 1 2 -3 4 it is again asking to enter
elements even after taking 4 elements */

#include <stdio.h>
#include<stdlib.h>
void popout (int a, int q, int n,int j)
{
int z; z=n;
for (int o = q; o < n - 1; o++)
{
a[o] = a[o + 1];  //deletes one number
}
int g = j;
if(g != 1)
{
z--;   //function calls recursively till we are
// deleting only one number
for(int i=0;i<n;i++) {
popout(a,a[i],z,g-1); // after deleting one number again
//again runs a loop to delete other
//number from already deleted array
}
g--;
}
}

int main ()
{
int n;int f;
int a;
int b;
printf ("enter number of elemnts");
scanf ("%d",&n);
printf ("enter elements");
for (int i = 0; i < n; i++)
scanf ("%d", &a[i]);
for (int i = 0; i < n; i++)
b[i] = a[i];
for (int j = 1; j < n; j++)
a = a + a[j];
if (a == 0)
printf ("%d", n);
for (int i = 0; i < n; i++)
a[i] = b[i];
/* pop out number by number */
for(int p = 1;p < n; p++) {  //p:number of elements to be deleted at onece
for(int i=0;i<n;i++) {
popout(a,a[i],n,p);
for(int g=1;g<n-1;g++) {
a+=a[g];
}
if(a==0)
{
printf("%d",n-p); exit;
}
else {
for(int i=0;i<n;i++)
a[i]=b[i];
}
}
}
return 0;
}
``````

### Content Attribution

This content was originally published by Srujith Chaithanya at Recent Questions - Stack Overflow, and is syndicated here via their RSS feed. You can read the original post over there.