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

    [C] Programma per indovinare un parola

    sto cercando di creare un programma che faccia indovinare all'utente una parola (si lo sò è scritta nel codice ) Però ho un problema perchè non so come fare per far inserire la parola all'utente. Ho provato usando gli array e mi è uscito qualcosa del genere:

    char *string = "eseguibile";
    char parol[9]= {e,s,e,g,u,i,b,i,l,e};

    int main()
    {
    int i;
    printf("Scrvi 1 per indovinare la parola, scrivi 0 per avere un aiuto:");
    scanf("%d", i)
    while (parol != *string){
    if ( i == 1){
    printf("Inserisci la parola che hai pensato:");
    scanf("%c", parol[9]);
    }
    else if (i == 0){
    int n;
    printf("Qual'è il numero del carattere che volevi cercare?");
    scanf("%d", n);
    printf("%c è il carattere che volevi\n",*(string+n));
    }
    }
    }


    purtroppo non conosco bene gli arraye non riesco a renderli accessibili, è meglio, non so comesi rendono accessibili.
    Per caso questo programma si potrebbe anche creare in un altro modo?(se nn si riesc a risolvere col metodo che ho proposto io).

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... prima di iniziare a programmare, dovresti studiare un po' su un libro, le nozioni "di base" ...

    Un forum NON sostituisce i libri ...

    Un array di caratteri per la tua parola lo crei cosi'

    char parola[30];

    e l'input lo fai cosi'

    scanf("%s", parola);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    mi sono procurato una guida ma credo che dovrò trovarne un'altra perchè non mi sta facendo capire niente (chisà come ho capito le variabili!), comunque ho modificato il programma con un do-while, adesso che però ho risolto il problema degli array si è presentato all'improvviso uno con le stringhe.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    char *string = "eseguibile";
    char parol[10];
    int i;

    int main()
    {
    do{
    printf("Scrvi 1 per indovinare la parola, scrivi 0 per avere un aiuto:");
    scanf("%d", &i);
    if ( i == 1){
    printf("Inserisci la parola che hai pensato:");
    scanf("%s", parol);
    if (parol == *string){
    printf("Bravo hai indovinato la parola!\n");
    return 0;
    }
    else {
    printf("Peccato! Hai sbagliato!\n");
    }
    }
    else if (i == 0){
    int n;
    printf("Qual'è il numero del carattere che volevi cercare?");
    scanf("%d", &n);
    printf("%c è il carattere che volevi\n",*(string+n-1));
    }
    }while (parol != *string);
    return 0;
    }

    il compilatore mi da errore nel momento in cui metto l'asterisco nei punti in grassetto, se poi quando lo eseguo e inserisco la parola mi dice sempre che ho sbagliato a inserire la parola.
    Se invece elimino gli asterischi il compilatore non mi da errori, ma nell'esecuzione mi da sempre lo stesso errore come se avessi sbagliato parola.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non scrivere codice a caso ...

    Intanto in C, due stringhe non si confrontano con

    ==

    ma usando l'opportuna funzione (la strcmp). Si scrive

    if(strcmp(string, parol)==0)

    per capire se le stringhe sono uguali e

    if(strcmp(string, parol)!=0)

    per capire se sono diverse ...

    Inoltre, non prevedere solamente 10 caratteri per la parola ... prepara la stringa con 30 caratteri

    char parol[30];
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Studio su libro cartaceo = buono.
    Studio su guide online = no buono.
    Spiluccamento di guide online = programmazione a caso = ASSOLUTAMENTE no buono.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da MItaly
    Studio su libro cartaceo = buono.
    Studio su guide online = no buono.
    Spiluccamento di guide online = programmazione a caso = ASSOLUTAMENTE no buono.
    Concordo ...

    Specialmente per il fatto che sei giovanissimo ... comincia bene, se vuoi imparare a programmare, fallo correttamente ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7

    Re: [C] Programma per indovinare un parola

    Originariamente inviato da battagliacom
    codice:
               printf("Qual'è il numero del carattere che volevi cercare?");
    "Qual è" si scrive senza apostrofo ;-)

  8. #8

    Re: Re: [C] Programma per indovinare un parola

    Originariamente inviato da MacApp
    "Qual è" si scrive senza apostrofo ;-)
    a Napoli abbiamo la licenza poetica XD

  9. #9
    Grazie seguirò i vostri consigli e cercherò di procurarmi un libro su cartaceo (stavo seguendo la guida su wikibook (http://it.wikibooks.org/wiki/C).
    Comunque il programma finito è questo, anche se devo trovare un modo per far cambiare continuamente la parola...ma per questo cìè tempo, devo ancora imparare le basi...e studiare su un libro.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    char *string = "eseguibile";
    char parol[30];
    int i;
    int e=138;

    int main()
    {
    do{
    printf("Scrvi 1 per indovinare la parola, scrivi 0 per avere un aiuto:");
    scanf("%d", &i);
    if ( i == 1){
    printf("Inserisci la parola che hai pensato:");
    scanf("%s", parol);
    if(strcmp(string, parol)==0) {
    printf("Bravo hai indovinato la parola!\n");
    return 0;
    }
    else {
    printf("Peccato! Hai sbagliato!\n");
    }
    }
    else if (i == 0){
    int n;
    printf("Qual %c il numero del carattere che volevi cercare?", e);
    scanf("%d", &n);
    printf("%c %c il carattere che volevi\n",*(string+n-1), e);
    }
    }while(strcmp(string, parol)!=0) ;
    return 0;
    }

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.