All test cases passed(including those in comments) still wrong answer at submission, please help
#include <stdio.h>
long long int toInt(char a[])
{
int c, offset = 0;
long long int n;
n = 0;
for (c = offset; a[c] != ‘\0’; c++) {
n = n * 10 + a[c] - ‘0’;
}
return n;
}
int main()
{
int s[5000], n, j=0;
long long int i;
char str[5000];
scanf("%s", str);
i = toInt(str);
while(i!=0){
while(i > 0){
s[j] = i%10;
j++;
i = i/10;
}
n = j;
long long int numdecs[n];
numdecs[n-1] = 1;
for(i=n-2; i>=0; i--){
if((s[i+1]*10+s[i] <= 26)){
if(s[i] == 0){
if(s[i+1] == 0){
numdecs[0] =0;
break;
}
else{
if(i == n-2) numdecs[i] = 1;
else numdecs[i] = numdecs[i+2];
}
}
else{
if(s[i+1]==0) numdecs[i] = numdecs[i+1];
else{
if(i == n-2) numdecs[i] = numdecs[i+1] + 1;
else numdecs[i] = numdecs[i+1]+numdecs[i+2];
}
}
}
else{
if(s[i] == 0){
numdecs[0] = 0;
break;
}
numdecs[i] = numdecs[i+1];
}
}
printf("%lld\n", numdecs[0]);
scanf("%s", str);
i = toInt(str);
j=0;
}
return 0;
}