Help me in solving DIVISIBLEBY8 problem

My issue

I am getting correct answer for all input cases and custom input but getting wrong while submitting ,I need to know why?

My code

#include<stdio.h>
void forn2(char *s,int n){
    int num=s[n-2]*10+2;
    while(num%8!=0){
    num=num+2;
    }
    num=num%10;
    char p=num+48;
    s[n-1]=p;
    printf("%s\n",s);
}
void forn3(char *s,int n){
    int num=(s[n-3])*100+(s[n-2])*10+2;
    while(num%8!=0){
        num=num+2;
    }
    num=num%10;
    char p=num+48;
    s[n-1]=p;
    printf("%s\n",s);
}
int main(){
    int t;
    scanf("%d",&t);
    while(t--){
        int n;
        scanf("%d",&n);
        char s[n];
        scanf("%s",s);
        if(n==1)
        printf("8\n");
        else if(n==2)
        forn2(s,n);
        else
        forn3(s,n);
    }
}


Problem Link: DIVISIBLEBY8 Problem - CodeChef

@lakshmideepak
for sample 1 test case 3
your code is not giving right output.