I'm making a function that reverses numbers less than 100000000. For example, if the input is 1234 then it should return 4321. But I am getting time limit exceeded TLE, I have made break points of my for loops but don't know why. Can you tell me what's wrong with this code?
int reverse(int n){
    int i, j=1, d[100000000]={0}, rev=0;  
    for(i=10;  ;i*10){
        if(n%i==n){
            d[j]=(n%i)/(i/10);
            break;
        }
        d[j++]=(n%i)/(i/10);
    }
    for(j=1; ;j++){
        rev+=(d[j]*(i/10));
        i/=10;
        if(i==10)
            break;
    }
 return rev;
}
int main(){
    printf("%d",reverse(321));
    return 0;
}
 
     
    