Ciao a tutti, io ci ho provato scrivendo questo codice che pare funzionare se il numero x è di 2 cifre ma come scrivere l'algoritmo per farlo funzionare in ogni caso?

Vi allego il mio codice, in testa trovate la traccia del problema:
codice:
/*
   Nome del programma: contacifre.cpp   
   Note              : Definire una funzione ContaCifre che prenda in input 
                       un Vettore V di interi di lunghezza N, ed un numero X 
                       e conti quante volte tutte le cifre di X siano contenute
                       negli elementi che compongono il vettore.
                       
                       Esempi.
                       Siano V=[484,325,12,8489,48,12487,1284] ed X=48 ; 
                       ContaCifre(V,7,48) = 4 (sono evidenziati i numeri che 
                       contengono al loro “interno” il numero 48).

*/     

#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

int contacifre(int [],int,int);

int main(){
    
    int x,n=9;
    int V[9]={484,325,12,8489,48,12487,1284,0,34548};
    
    cout<<"Immetti la Cifra da cercare: ";
    cin>>x;
    
    cout<<"\n\nLe cifre sono "<<contacifre(V,n-1,x)<<endl;
    
    system("pause");
    return 0;
    
}

int contacifre(int v[],int n,int x){
    int conta=0;
    if(n<0) return 0;
    
    while(n>=0){
                if(v[n]==x) {conta++;
                cout<<v[n]<<" "<<conta<<endl;
                //system("pause");
                }
                else{
                     int n1=v[n];
                      cout<<n1<<" "<<conta<<endl;
                      //system("pause");
                     do{
                       if(n1==x) conta++;
                       else if((n1-x)%10==0 && ((n1-x)/10)%10==0) conta++;
                       cout<<n1<<" "<<conta<<endl;
                       //system("pause");
                       n1=n1/10;
                     }while(n1!=0);
                     }
                     n--;
                     }
                     return conta;
}


Grazie