Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    programmazione c

    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

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Per verificare che sia un numero naturale è sufficiente che controlli se il valore assoluto del numero è uguale al numero stesso:
    codice:
    int mioNumero;
    ...
    if (mioNumero == abs(mioNumero)) {
       // è un numero naturale
    } else {
       // Non è un numero naturale
    }
    Per i vettori (array) hai la possibilità di utilizzare array predimensionati oppure, tramite i puntatori, hai la possibilità di avere array di dimensione dinamica.


    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

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

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    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).
    codice:
    int vet[10];
    int temp;
    int j;
    
    for (j=0; j<10; j++) {
       scanf("%d", &temp);
    
       if (temp > 0) {
          vet[i] = temp;
          i++;
       }
    }
    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

  5. #5
    ma per poter verificare che non sia un numero con la virgola tipo 3.2 o 3,2?ciao grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    Beh, per quello prova ad usare questa funzioncina

    codice:
    int verificaInt (float num)
    {
      if (round(num) == num)
        return 1;
      return 0;
    }
    Se hai in uscita 1, il numero è intero, altrimenti è decimale.
    Per usarla devi includere math.h (o cmath se usi il namespace std)
    *********************************
    Andrea
    *********************************

  7. #7
    Grazie ma c'è un altro modo diretto senza usare librerie?
    Ciao grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    444
    un casting a intero
    *********************************
    Andrea
    *********************************

  9. #9
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    "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

  10. #10
    Utente di HTML.it L'avatar di edriv
    Registrato dal
    Oct 2004
    Messaggi
    367
    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.

    codice:
    return ((int)n == n) & (n > 0)
    anche se nn sono sicuro che 0 non sia un numero naturale...
    secondo Peano no, secondo altri sì...boh
    I've got a bike. You can ride it if you like.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.