Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 26
  1. #11
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Eris
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 50
    
    int main()
    { char lett[MAX]= {'a','b','c','d'};
      int  n=0;
      printf("Scrivi un numero:\n");
      scanf("%d",&n);
      printf("Hai scritto il num %d che corrisponde alla lett %s\n", n, lett[n+1]);
      
      system("PAUSE");	
      return 0;
    }
    per esercitarmi ho provato questo ma non funziona.cosa sbaglio?
    Devi usare %c:
    codice:
    printf("Hai scritto il num %d che corrisponde alla lett %c\n", n, lett[n]);
    Nota anche che gli indici degli array partono da 0.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  2. #12
    Utente di HTML.it L'avatar di Eris
    Registrato dal
    Feb 2004
    Messaggi
    511
    grazie!ora va...ma se al posto delle lettere invece...volessi mettere i mesi dell anno...in modo che se uno scrive tre esce marzo...come posso fare?

  3. #13
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Eris
    grazie!ora va...ma se al posto delle lettere invece...volessi mettere i mesi dell anno...in modo che se uno scrive tre esce marzo...come posso fare?
    Semplice:
    char *mesi[12] = { "gennaio", "febbraio", ecc... };

    poi usi %s passando mesi[n]. (con n da 0 a 11).

    EDIT: se vuoi che 3 faccia stampare Marzo, devi naturalmente mettere n-1.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  4. #14
    Originariamente inviato da andbin
    Nel linguaggio "C" NON si possono far ritornare array!!!! Al massimo puntatori (quindi nel caso di array, un puntatore al primo elemento dell'array).
    pardon, ricordavo decisamente male ^^ uso C abbastanza poco
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #15
    Utente di HTML.it L'avatar di Eris
    Registrato dal
    Feb 2004
    Messaggi
    511
    non funziona cosi ci avevo gia provato mi da errore

  6. #16
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Eris
    non funziona cosi ci avevo gia provato mi da errore
    Ti riferisci alla questione dei mesi??? Che errore ti da??? Posta magari il codice.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #17
    Utente di HTML.it L'avatar di Eris
    Registrato dal
    Feb 2004
    Messaggi
    511
    ok stasera lo posto..grazie

  8. #18
    Utente di HTML.it L'avatar di Eris
    Registrato dal
    Feb 2004
    Messaggi
    511
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 50
    
    int main()
    { char lett[MAX]= {'gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre'};
      int  n=0;
      printf("Scrivi un numero:\n");
      scanf("%d",&n);
      printf("Hai scritto il num %d che corrisponde al mese %s\n", n, lett[n+1]);
      
      system("PAUSE");	
      return 0;
    }

  9. #19
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Eris
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define MAX 50
    
    int main()
    { char lett[MAX]= {'gennaio','febbraio','marzo','aprile','maggio','giugno','luglio','agosto','settembre','ottobre','novembre','dicembre'};
      int  n=0;
      printf("Scrivi un numero:\n");
      scanf("%d",&n);
      printf("Hai scritto il num %d che corrisponde al mese %s\n", n, lett[n+1]);
      
      system("PAUSE");	
      return 0;
    }
    No, ci sono diverse cose sbagliate:

    - Nel linguaggio "C" le stringhe sono "una sequenza di caratteri terminata dal carattere nullo". Quello che tu hai a disposizione è un puntatore al primo carattere della stringa.
    - Le stringhe "letterali" si scrivono tra le doppie virgolette, non quelle singole.

    Quindi la dichiarazione diventa:
    char *lett[MAX]= {"gennaio","febbraio",ecc....};

    lett deve essere "un array di puntatori".
    Tra l'altro perché metti MAX a 50 se i mesi sono 12?

    Il resto è tutto giusto tranne il fatto che devi mettere lett[n-1]. Gli array iniziano dall'indice 0.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  10. #20
    Utente di HTML.it L'avatar di Eris
    Registrato dal
    Feb 2004
    Messaggi
    511
    umh...ok ora lo provo...

    sei molto gentile grazie!

    sono un po impedita con queste cose!

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