Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [c] trascrivere ogni cifra di un numero in un array :S

    ragazzi ho una semplice variaible:

    char myVar=125;

    come faccio a creare un array:

    myArr[2]=5;
    myArr[1]=2;
    myArr[0]=1;


  2. #2
    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?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    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);
    Esatto!

    Originariamente inviato da xnavigator
    c'è una funzioen nel c che separa la parte intera da quella deciamle?
    Che io sappia no, ma puoi convertire il numero in stringa con

    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

  4. #4
    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(stringa32"%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]);

          

    L'ho buttato giu di getto, prova a dargli una controllata. Per semplicità non gestisco i casi di input errati.

  5. #5
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    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.

  6. #6
    Originariamente inviato da YuYevon
    c'è una funzioen nel c che separa la parte intera da quella deciamle?
    Che io sappia no

    esiste il cast

    Codice PHP:
    double x=5.5;
    int n = (int)x;
    double dec x-n

  7. #7
    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++;
    	}

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Originariamente inviato da giacomins87
    esiste il cast
    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 *_*
    every day above ground is a good one

  9. #9
    Originariamente 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 *_*
    So che ti riferivi all'esistenza di una funzione e so anche che sai cos'è il cast, ma dato che xnavigator voleva fare questo

    Codice PHP:
    int myVar=125;

    myArr[2]=5;
    myArr[1]=2;
    myArr[0]=1
    tramite divisioni successive e aveva bisogno di isolare il resto, mi è sembrato strano che non avessi menzionato il cast.
    Non prenderla come un attacco alle tue conoscenze, il post l'ho scritto per completezza.

  10. #10
    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

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.