ragazzi ho una semplice variaible:
char myVar=125;
come faccio a creare un array:
myArr[2]=5;
myArr[1]=2;
myArr[0]=1;
![]()
ragazzi ho una semplice variaible:
char myVar=125;
come faccio a creare un array:
myArr[2]=5;
myArr[1]=2;
myArr[0]=1;
![]()
forse ci sono arrivato..
potrei dividere il mio numero ogni volta per 10 cosi da prendere poi solo la parte decimale ogni volta:
mi spiego:
cifra numero 1 = parte decimale di (125/10);
cifra numero 2 = parte decimale di(12/10);
cifra numero 3 = parte decimale di(1/10);
c'è una funzioen nel c che separa la parte intera da quella deciamle?![]()
Esatto!Originariamente inviato da xnavigator
forse ci sono arrivato..
potrei dividere il mio numero ogni volta per 10 cosi da prendere poi solo la parte decimale ogni volta:
mi spiego:
cifra numero 1 = parte decimale di (125/10);
cifra numero 2 = parte decimale di(12/10);
cifra numero 3 = parte decimale di(1/10);
Che io sappia no, ma puoi convertire il numero in stringa conOriginariamente inviato da xnavigator
c'è una funzioen nel c che separa la parte intera da quella deciamle?![]()
http://www.cplusplus.com/reference/c...stdio/sprintf/
o per meglio dire con la sua versione sicura con controllo sulle dimensioni del buffer
http://libslack.org/manpages/snprintf.3.html
e una volta ottenuta la stringa è molto semplice separare la parte decimale da quella intera... la prima sta dopo il punto e la seconda prima. Ovviamente però poi dovrai riconvertire le due sottostringhe in numeri...
Alternativamente puoi utilizzare la funzione floor() (parte intera inferiore) per ottenere la parte intera di un numero con la virgola e "tua_variabile - floor(tua_variabile)" per quella decimale.
EDIT: per la funzione floor() devi includere math.h ovviamente.
every day above ground is a good one
L'ho buttato giu di getto, prova a dargli una controllata. Per semplicità non gestisco i casi di input errati.Codice PHP:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char stringa[32];
int val;
printf("Inserisci un numero: ");
scanf("%d",&val);
snprintf(stringa, 32, "%d", val);
int size = strlen(stringa);
int array[size];
int i;
for (i=0;stringa[i] != 0;i++)
array[i] = stringa[i]-48;
for(i=0;i<size;i++)
printf("%d\n", array[i]);
}
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Originariamente inviato da YuYevon
Che io sappia noc'è una funzioen nel c che separa la parte intera da quella deciamle?
esiste il cast
Codice PHP:
double x=5.5;
int n = (int)x;
double dec = x-n;
già fatto guys ^^
codice:i=0; while(decimalValue > 0) { temp = decimalValue % 10; cifre[i] = temp; //printf("cifra[%d]: %d\n",i,temp); decimalValue=decimalValue / 10; i++; }
Sì ma il mio "che io sappia no" si riferiva all'esistenza di funzioni che permettessero di farlo, che poi uno o più modi per ottenere il risultato esistano è ovvio e infatti ne avevo suggeriti un paio... tra l'altro pensavo gli interessassero proprio le cifre della parte decimale, quindi in tal caso l'unico metodo valido resta quello di sprintf. Comunque grazie per avermi ricordato l'esistenza del cast *_*Originariamente inviato da giacomins87
esiste il cast
every day above ground is a good one
So che ti riferivi all'esistenza di una funzione e so anche che sai cos'è il cast, ma dato che xnavigator voleva fare questoOriginariamente inviato da YuYevon
Sì ma il mio "che io sappia no" si riferiva all'esistenza di funzioni che permettessero di farlo, che poi uno o più modi per ottenere il risultato esistano è ovvio e infatti ne avevo suggeriti un paio... tra l'altro pensavo gli interessassero proprio le cifre della parte decimale, quindi in tal caso l'unico metodo valido resta quello di sprintf. Comunque grazie per avermi ricordato l'esistenza del cast *_*
tramite divisioni successive e aveva bisogno di isolare il resto, mi è sembrato strano che non avessi menzionato il cast.Codice PHP:
int myVar=125;
myArr[2]=5;
myArr[1]=2;
myArr[0]=1;
Non prenderla come un attacco alle tue conoscenze, il post l'ho scritto per completezza.
ragazzi non c'è bisogno di fare nessun cast ne usare funzoini che separino la parte int da quella decimale ^^
entrambe temp e decimalValue dichiarate come short.
Prendendo il resto della divisione di %10 otteniamo proprio la prima cifra decimale nel casso avessimo diviso per 10
temp = decimalValue % 10;
poi essendo decimalValue già short, facendo
decimalValue=decimalValue / 10;
la parte decimale non viene salvata
e poi si continua con il while