vettore?
quello è solo un array di char![]()
scusami, ma un vettore è un array :-)
una stringa è un vettore che contiene dei caratteri, ed il vettore o array che dir si voglia che hai inizializzato te:
è un vettore o array di 5 charcodice:char c_num[5];![]()
http://www.mangaitalia.net/
questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo
scusa, deformazione professionale;usando spesso il C++ tendo ad indicare come vettore solo quello della STL :P
ok nn ti preoccupare, a volte capita di confondersi![]()
a me ad esempio capita spesso
cmq grazie per la soluzione!
http://www.mangaitalia.net/
questo è un cazzo metallizzato a quattro ruote e noi due siamo i coglioni che se lo portano dietro - da Bad Boys con Will Smith and Martin Lawrance di John Whoo
Ciao...
Scusate se mi intrometto ma ho provato il codice precedente e
funziona con tutti i numeri costituiti da un numero qualsiasi di cifre tranne con quelli che terminano con degli zeri per esempio
12340
12340000
con questi numeri non funziona, gli zeri non vengono visualizzati,
ho inserito un controllo if ma non funziona stampa solo il primo zero
....
if ( numero % 10 != 0 ) {
while (numero != 0)
{
t = t * 10 + numero % 10;
numero /= 10;
}
while (t != 0)
{
numero = t % 10;
output = output + numero + " ";
t /= 10;
}
JOptionPane.showMessageDialog( null, "Il numero è\n" + output );
}
else {
while (numero != 0)
{
t = t * 10 + numero % 10;
numero /= 10;
}
while (t != 0)
{
numero = t % 10;
output = output + numero + " ";
t /= 10;
}
JOptionPane.showMessageDialog( null, "Il numero è\n" + output + zero);
}
............
come puo' essere risolto????!!!????
Se sai in principio da quante cifre è formato il tuo numero (oppure non hai problemi a gestire un array allocato a run-time) puoi usare il mio metodo.Originariamente inviato da gandalf45
Un altro modo:
codice:#include <stdio.h> int main() { int num=2364; char c_num[5]; //4 numeri + carattere nullo di fine stringa sprintf(c_num,"%d",num);//copia il numero nel buffer printf("\n%c %c %c %c",c_num[0],c_num[1],c_num[2],c_num[3]); return 0; }
Aggiunge gli zeri in coda al numero.
codice:#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { long int n = 0, t = 0; char c[50] = "\0", l, j; printf("Inserisci un numero intero: "); scanf("%d", &n); itoa(n, c, 10); l = strlen(c); while (n != 0) { t = t * 10 + n % 10; n /= 10; } itoa(t, c, 10); j = strlen(c); while (t != 0) { n = t % 10; printf("%d ", n); t /= 10; } while(j<l) { printf("0 "); j++; } system("pause"); return 0; }
...Terrible warlords, good warlords, and an english song
[editato]codice:#include <stdio.h> #include <stdlib.h> #include <math.h> int main(){ //Main int num, //il numero l_num = 1; //il numero di cifre che lo compongono char *c_num; //il buffer dove metteremo il numero //ti procure il numero nel modo che preferisci //in questo caso uso STDIN (standard input, la console) scanf("%d",&num); while(num / (int)pow(10,l_num)) l_num++; //conto il numero di cifre printf("\nNum lungo: %d",l_num); c_num = (char*)malloc(sizeof(char)*(l_num+1)); sprintf(c_num,"%d",num); for(int z=0; z<l_num; z++) printf("\n%c",c_num[z]); free(c_num); SYSTEM("PAUSE"); return 0; }
ups, non avevo visto l'altro post :rollo:
Buona idea!Originariamente inviato da gandalf45
codice:while(num / (int)pow(10,l_num)) l_num++; //conto il numero di cifre
io sostituirei il mio codice nel seguente modo
(evitando così l'utilizzo delle stringhe [come da titolo])
codice:#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { long int n = 0, t = 0; char l = 1, j = 1; printf("Inserisci un numero intero: "); scanf("%d", &n); while(n / (int)pow(10, l)) l++; while (n != 0) { t = t * 10 + n % 10; n /= 10; } while(t / (int)pow(10, j)) j++; while (t != 0) { n = t % 10; printf("%d ", n); t /= 10; } while(j<l) { printf("0 "); j++; } system("pause"); return 0; }
...Terrible warlords, good warlords, and an english song
...EDIT
è ridondante, è sufficiente aggiungere un contatore all'interno del ciclo while (così non serve utilizzare nessuna ulteriore funzione di libreria: vedi pow() )
codice:#include <stdio.h> #include <stdlib.h> int main() { long int n = 0, t = 0; char l = 0, j = 0; printf("Inserisci un numero intero: "); scanf("%d", &n); while (n != 0) { t = t * 10 + n % 10; n /= 10; l++; } while (t != 0) { n = t % 10; printf("%d ", n); t /= 10; j++; } while(j<l) { printf("0 "); j++; } system("pause"); return 0; }
...Terrible warlords, good warlords, and an english song