salve ho un problema.Io devo gestire un insieme di numeri naturali.L'insieme deve essere realizzato con un vettore.i valori vanno inseriti da tastiera e devo verificare che i valori inseriti sono numeri naturali .Come faccio?
ciao grazie mille
salve ho un problema.Io devo gestire un insieme di numeri naturali.L'insieme deve essere realizzato con un vettore.i valori vanno inseriti da tastiera e devo verificare che i valori inseriti sono numeri naturali .Come faccio?
ciao grazie mille
Per verificare che sia un numero naturale è sufficiente che controlli se il valore assoluto del numero è uguale al numero stesso:
Per i vettori (array) hai la possibilità di utilizzare array predimensionati oppure, tramite i puntatori, hai la possibilità di avere array di dimensione dinamica.codice:int mioNumero; ... if (mioNumero == abs(mioNumero)) { // è un numero naturale } else { // Non è un numero naturale }
Ciao.
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ok,grazie ma se per sempio io devo gestire:
char vett[10];
dove dentro il vettore ci sono 10 numeri naturali
e poi verificare se ognuno di essi è naturale?(senza abs?)
ciao
Innanzitutto dovresti creare un array di interi (non di caratteri). Poi, senza utilizzare l'abs basta che verifichi che sia maggiore di 0 (che, adesso che ci penso, è anche più veloce).
Ciao.codice:int vet[10]; int temp; int j; for (j=0; j<10; j++) { scanf("%d", &temp); if (temp > 0) { vet[i] = temp; i++; } }
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
ma per poter verificare che non sia un numero con la virgola tipo 3.2 o 3,2?ciao grazie
Beh, per quello prova ad usare questa funzioncina
Se hai in uscita 1, il numero è intero, altrimenti è decimale.codice:int verificaInt (float num) { if (round(num) == num) return 1; return 0; }
Per usarla devi includere math.h (o cmath se usi il namespace std)
*********************************
Andrea
*********************************
Grazie ma c'è un altro modo diretto senza usare librerie?
Ciao grazie
un casting a intero
*********************************
Andrea
*********************************
"programmazione c" mi sembra un po' vago come titolo
rileggi il regolamento
io sono festosamente cicciottello :: e. cartman
t'amo senza sapere come, nè quando nè da dove,
t'amo direttamente senza problemi nè orgoglio:
così ti amo perchè non so amare altrimenti
Beh... confrontare il valore assoluto e verificare che sia maggiore di zero non è proprio la stessa cosa... infatti nel primo caso lo zero viene considerato naturale.
anche se nn sono sicuro che 0 non sia un numero naturale...codice:return ((int)n == n) & (n > 0)
secondo Peano no, secondo altri sì...boh
I've got a bike. You can ride it if you like.