Visualizzazione risultati 1 fino 12 di 12

Discussione: [Programmazione - C] Array di cifre

  1. #1
    Guest

    Predefinito [Programmazione - C] Array di cifre

    Vi espongo il dubbio,
    Devo dare in input un numero naturale e rappresentarlo tramite array:
    quindi se in input schiaffo 343, l'array dovrà contenere i numeri "tre" "quattro" e "tre" in varie "caselle" dll'array. Dovrà essere quindi un array di cifre che rappresenta il numero.
    Come posso fare?

  2. #2
    Guest

    Predefinito

    Ti chiedo scusa ma devo partire quindi sono molto di corsa.
    Comunque potresti eseguire una divisione intera per 10, 100, 1000 (con un while, così quando il risultato è 0, esce dal ciclo) e poi con un MOD (% in C), ti ricavi il resto (cioè l'unità, la decina, la centinaia, ecc.. che stai trovando in quel momento!!)

    Scusami ancora ma ti ripeto vado di fretta, spero che qualcuno ti possa spiegare nel dettaglio questo metodo!!!

    Ciao, auguri di buona Pasqua,
    Luca

  3. #3
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Trasformi la cifra in stringa "atoi" o roba del genere (se deve essere ANSI C usa sprintf)
    Poi la stringa è come un array di byte, ogni elemento è il numero che ti serve.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  4. #4
    Guest

    Predefinito

    Potresti farlo con un while che immetta cifre nella posizione i fino a quando non si prema invio, no?

  5. #5
    Guest

    Predefinito

    allora boys,
    ho fatto prendere il numero in input mediante una stringa e non un array, poi ho creato, dopo aver letto la lunghezza della stringa, un array di questa lunghezza...ora:
    come faccio a trasportare i caratteri letti nelle relative caselle dell'array?

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Vediamo se mi ricordo ancora come si fa...
    Codice:
    #include <stdio.h>
    
    int main (int argc, char *argv[])
    {
       char[10] numero_str;
       int[10] numero_array;
       int i;
       printf ("Inserisci un numero...");
       gets (numero_str);
       for (i = 0; i < strlen (numero_str); i++)
          numero_array[i] = numero_str[i] - '0';
       printf ("Hai inserito:\n");
       for (i = 0; i < strlen (numero_str); i++)
          printf ("%d\n", numero_array[i]);
       return 0;
    }
    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    Guest

    Predefinito

    Quello di dementialsite è corretto a parte il fatto che devi includere anche la libreria <string.h>.

    Hola!

  8. #8
    Guest

    Predefinito

    ragazzi, piano piano ci arrivo sempre più vicino ma qualke problema c'è sempre.
    Io devo poter inserire interi anche di 20 cifre ma il tipo 'int' non li sopporta...qualcuno sa come soccombere al problema?

  9. #9
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Non inserirli come interi ma come stringhe...
    Gli int servono solo se del numero devi fare operazioni matematiche o ricerche di qualche tipo(maggiore minore)
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  10. #10
    Guest

    Predefinito

    Se usi array non ci sono problemi di questo tipo altrimenti usa double...

  11. #11
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da liceoperito
    ragazzi, piano piano ci arrivo sempre più vicino ma qualke problema c'è sempre.
    Io devo poter inserire interi anche di 20 cifre ma il tipo 'int' non li sopporta...qualcuno sa come soccombere al problema?
    Sei usi il codice mio sopra, ti basta modificare il [10] alle prime due righe con il numero massimo di caratteri leggibili (purtroppo in C, diversamente da Java, lo devi stabilire...).

    Ah, una cosa: quel codice lì sopra non fa nessun controllo sulla correttezza del numero inserito. Tradotto: potresti avere effetti imprevedibili se qualcuno pensa bene di inserire qualche lettera o punto in mezzo alle cifre...

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    (purtroppo in C, diversamente da Java, lo devi stabilire...).
    oppure usare l'allocazione dinamica della memoria quando la dimensione di un array non è noto a priori, mediante le funzioni 'malloc' o 'calloc' (e la relativa 'free' per liberare memoria occupata).

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •