I have listed 2 codes below
CODE 1:
int main()
{
int z=0 ,a[100];
for(int i=10;i<=30;i++)
{
if(palindrome(i))
a[++z]=i;
}
cout<<"value of z = "<<z<<endl;
}
CODE 2:
int main()
{
int z=0 ,a[100];
for(int i=10;i<=30;i++)
{
if(palindrome(i))
a[++z]=i;
cout<<z<<endl; // JUST ADDED THIS EXTRA LINE
}
cout<<"value of z = "<<z<<endl;
}
#Note:
the function palindrome return 0 if the number given is not a palindrome
function palindrome is as follows
int palindrome (int n)
{
int rev;
int n1=n;
while(n!=0)
{
int t=n%10;
rev = (rev*10) + t;
n/=10;
}
if(rev!=n1)
return 0;
}
OUTPUT FOR CODE 1: value of z = 0
OUTPUT FOR CODE 2:
0
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
value of z = 2
can anyone explain why addition of cout<<z<<endl;
inside the loop creating such a drastic change in value of final z ?
EDIT:
through comments for this question i realized that initializing rev=0
in my palindrome function would sort the issue.
But Can anyone tell me why adding cout<<z<<endl; inside the loop made a change in output ?