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



Rispondi quotando