Mi sapreste suggerire un algoritmo per verificare se una determinata cifra è presente in un numero ? Premetto che non devo utilizzare un arrayGrazie a tutti
Mi sapreste suggerire un algoritmo per verificare se una determinata cifra è presente in un numero ? Premetto che non devo utilizzare un arrayGrazie a tutti
codice:while(a>0) { cifra=a%b; if(cifra==cifra_controllo) /*metti la tua condizione*/ a=a/b; }
Scusami, ma b per che cosa sta ?Originariamente inviato da _Alfabetagamma_
codice:while(a>0) { cifra=a%b; if(cifra==cifra_controllo) /*metti la tua condizione*/ a=a/b; }
Comunque faccio un esempio del problema, nel caso non mi fossi spiegato bene :
inserisco il numero 46 e la cifra da cercare nel numero. Se la cifra da cercare è 4 allora il programma mi dovrà restituire 1, perchè la cifra 4 compare una volta nel numero 46.
B sta per la base, se lo vuoi cercare in base 10, metti 10, in base 2, 2 ecc ecc
46%10=6;
6==4? no
46/10=4
4%10=4
4==4? si
4/10=0
esco dal ciclo
PS: siccome non avevi detto in base 10, allora ho messo b![]()
Il programma è questo, alcune volte restituisce un conteggio sbagliato o.Ocodice:#include <stdio.h> int main() { int a,cifra_controllo,count=0; scanf("%d",&a); scanf("%d",&cifra_controllo); while(a>0) { cifra=a%10; if(cifra==4) { a/=10; count++; } else a/=10; } printf("Il numero %d compare %d volte\n",cifra_controllo,count); }
Originariamente inviato da Ghemon-a
Il programma è questo, alcune volte restituisce un conteggio sbagliato o.Ocodice:#include <stdio.h> int main() { int a,cifra_controllo,count=0; scanf("%d",&a); scanf("%d",&cifra_controllo); while(a>0) { cifra=a%10; if(cifra==4) { a/=10; count++; } else a/=10; } printf("Il numero %d compare %d volte\n",cifra_controllo,count); }
Ci sono due errori:
1) devi dichiarare cifra;
2) il controllo è tra cifra e cifra_controllo, non tra cifra e 4![]()
GiustissimoOriginariamente inviato da _Alfabetagamma_
Ci sono due errori:
1) devi dichiarare cifra;
2) il controllo è tra cifra e cifra_controllo, non tra cifra e 4![]()
Grazie mille
![]()