Problemi con un Programma Semplicissimo per voi

di il
13 risposte

Problemi con un Programma Semplicissimo per voi

Salve!
Sono uno studente liceale alle prime armi con la programmazione.
Riscontro dei problemi scrivendo un programma.
L'esercizio è:
Si vuole scrivere un algoritmo che riceve in ingresso una parola, se la parola è uguale a “ciccio”
risponde “pasticcio” altrimenti dice “Non hai indovinato ritenta!”. Il gioco può ripetersi tre volte. Se al terzo
tentativo l'utente non indovina il programma dice “Ciao” e Termina.


Io sono arrivato a questo punto con il codice:
#include <stdio.h>
int main()
{
char parola="ciccio";
int i;
for(i=0;i<3;i++){
printf("\n Inserisci la parola: ");
stampf("%s",parola);
if(parola=="ciccio"){
printf("\n pasticcio");
return 0;
}else{
printf("\n Non hai indovinato ritenta! ");
}
}
return 0;
}

Qualcuno riesce a dirmi quale errore faccio giustificandolo? Grazie in anticipo!

13 Risposte

  • Re: Problemi con un Programma Semplicissimo per voi

    1) Devi usare un vettore di char per inserire la parola

    2) Per confrontare le stringhe devi usare la funzione strcmp
  • Re: Problemi con un Programma Semplicissimo per voi

    oregon ha scritto:


    1) Devi usare un vettore di char per inserire la parola

    2) Per confrontare le stringhe devi usare la funzione strcmp
    Potresti se puoi, scrivere il programma corretto? Prendendo spunto da quello che ho fatto io?
  • Re: Problemi con un Programma Semplicissimo per voi

    Al contrario, potresti tentare di scrivere tu solo quello che ti ho suggerito?

    Come dichiari un vettore di char?
    Devi modificare la linea

    char parola="ciccio";

    Come chiami la funzione strcmp?
    Devi modificare la linea

    if(parola=="ciccio"){

    Inoltre cosa vuoi dire con


    stampf("%s",parola);

    ???
  • Re: Problemi con un Programma Semplicissimo per voi

    oregon ha scritto:


    Al contrario, potresti tentare di scrivere tu solo quello che ti ho suggerito?

    Come dichiari un vettore di char?
    Devi modificare la linea

    char parola="ciccio";

    Come chiami la funzione strcmp?
    Devi modificare la linea

    if(parola=="ciccio"){

    Inoltre cosa vuoi dire con


    stampf("%s",parola);

    ???
    Essendo io abbastanza ignorante(forse fin troppo) con la programmazione, purtoppo non riesco a capire che errori faccio.
    Con stampf volevo salvare la parola digitata dal utente nel char parola appunto.
    Sono arrivato a questo punto:
    #include <stdio.h>
    int main()
    {
    char parola[256];
    int i;
    for(i=0;i<3;i++){
    printf("\n Inserisci la parola: ");
    stampf("%s", parola);
    if(parola=="ciccio"){
    printf("\n Ciao!");
    return 0;
    }else{
    printf("\n Ritenta! ");
    }
    }
    return 0;
    }

    Codeblock mi dice: undefined reference to `stampf'|
    ||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

    Cos'è che sbaglio?
    Grazie infinitamente per la tua disponibilità e pazienza!
  • Re: Problemi con un Programma Semplicissimo per voi

    Stampf non esiste

    Sai qual è la funzione per inserire la stringa?


    P.S. Ma l'hai scritto tu il programma?
  • Re: Problemi con un Programma Semplicissimo per voi

    oregon ha scritto:


    stampf non esiste

    Sai qual è la funzione per inserire la stringa?


    P.S. Ma l'hai scritto tu il programma?
    Oddio scusami per la mia ignoranza, era scanf e non stampf. Scusami per il disturbo!
  • Re: Problemi con un Programma Semplicissimo per voi

    Infatti il compilatore te lo diceva nel messaggio d'errore ...

    Adesso ti manca solo la correzione della if

    if(parola=="ciccio"){

    Non puoi usare == ma la funzione strcmp
  • Re: Problemi con un Programma Semplicissimo per voi

    oregon ha scritto:


    Infatti il compilatore te lo diceva nel messaggio d'errore ...

    Adesso ti manca solo la correzione della if

    if(parola=="ciccio"){

    Non puoi usare == ma la funzione strcmp
    A scuola non abbiamo ancora imparato come si usa la funzione strcmp, potresti dirmi come funziona o se riesci mi invii il link dell'argomento in questo forum dove se ne parla se c'è?
    Io sto cercando su internet ma non riesco a capire come funzioni.
  • Re: Problemi con un Programma Semplicissimo per voi

    Mi sembra strano che non l'abbiate fatto perché è necessaria per questo tipo di esercizio (dato che confrontate due stringhe) in C.

    Ma studiate il C o il C++ ?

    In ogni caso trovi tutto, con esempi, in

    http://www.cplusplus.com/reference/cstring/strcmp
  • Re: Problemi con un Programma Semplicissimo per voi

    oregon ha scritto:


    Mi sembra strano che non l'abbiate fatto perché è necessaria per questo tipo di esercizio (dato che confrontate due stringhe) in C.

    Ma studiate il C o il C++ ?

    In ogni caso trovi tutto, con esempi, in

    http://www.cplusplus.com/reference/cstring/strcmp
    Stiamo studiando il C
    Codice:
    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char parola[256];
    char parola2[] = "ciccio";
    int i;
    for(i=0;i<3;i++){
    printf("\n Inserisci la parola: ");
    scanf("%s", parola);
    if(strcmp (parola2,parola) != 0){
    printf("\n Ciao!");
    return 0;
    }else{
    printf("\n Ritenta! ");
    }
    }
    return 0;
    }

    Dopo aver eseguito il programma, quando scrivo ciccio, il programma lo conta come una qualsiasi parola e va avanti. Dopo i 3 tentativi, come faccio, prima che il programma vada in pausa a non stampare il messaggio ritenta?

  • Re: Problemi con un Programma Semplicissimo per voi

    Non != 0 ma == 0
  • Re: Problemi con un Programma Semplicissimo per voi

    oregon ha scritto:


    Non != 0 ma == 0
    Grazie per l'aiuto, la tua disponibilità e la tua incredibile pazienza! Grazie davvero!
  • Re: Problemi con un Programma Semplicissimo per voi

    Di nulla...
Devi accedere o registrarti per scrivere nel forum
13 risposte