Aiuto programmino che non va

di il
6 risposte

Aiuto programmino che non va

Ciao a tutti

ho un problema con un programmino. Praticamente voglio generare due numeri casuali ma la simulazione sono io a controllarla e per fare questo ho inserito degli if con scanf del tipo se il carattere scelto è quello giusto vai aventi altrimenti errore esci.

la prima parte va bene ovvero io digito spazio per poter proseguire e mi da il primo num casuale continuando poi fermo nuovamente la simulazione chiedendo appunto di digitare nuovamente spazio per continuare, ma in questo caso succede che su video mi stampa la richiesta ma non me la fa fare e mi manda in esecuzione sempre l'ultimo else facendomi così uscire dal programmma. Sapete dirmi il perchè???????



Ecco qui il programma



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


//===== Main program ==========================================================
int main(void)
{

int z;
char scelta,scelta1;
printf("\nPremere spazio e invio per continuare\n");
scanf("%c",&scelta);
if (scelta==' ')
{
srand(time(NULL));
z= rand();
printf("Il valore casuale = %d",z);
scelta=0;
}
else
exit(1);
printf("\nPremere nuovamente spazio per ottenere il secondo numero\n");
scanf("%c",&scelta1);
if (scelta1=='a')
{
srand(time(NULL));
z= rand();
printf("Il valore casuale = %d",z);
}
else
exit(1);

return 0;
}

6 Risposte

  • Re: Aiuto programmino che non va

    Nessuno mi da una mano

    perfavore aiutoooooooo
  • Re: Aiuto programmino che non va

    Scusami perchè scrivi

    if(scelta1=='a')

    ??????????
  • Re: Aiuto programmino che non va

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


    //===== Main program ==========================================================
    int main(void)
    {

    int z;
    char scelta,scelta1;
    printf("\nPremere spazio e invio per continuare\n");
    scanf("%c",&scelta);
    if (scelta==' ')
    {
    srand(time(NULL));
    z= rand();
    printf("Il valore casuale = %d",z);
    scelta=0;
    }
    else
    exit(1);
    printf("\nPremere nuovamente spazio per ottenere il secondo numero\n");
    scanf("%c",&scelta);
    if (scelta==" '')
    {
    srand(time(NULL));
    z= rand();
    printf("Il valore casuale = %d",z);
    }
    else
    exit(1);

    return 0;
    }


    Ecco fatto ho tolto la a che giustamente non centrava niente ora mi sai dire perchè mi da il problema che nel primo messaggio ho scritto a me sembra giusto aiutatemi sono nel panico
  • Re: Aiuto programmino che non va

    Ciao,

    E' errato anche if(scelta==" ")
    L'espressione in questione è sempre falsa (e comunque il compilatore dovrebbe quantomeno emettere una warning).
    C'è una certa differenza tra una stringa (racchiusa da virgolette "") ed un carattere (racchiuso da apici '').
    In particolare questo (" ") è un char*, mentre questo (' ') è un char.

    Inoltre, se vuoi leggere un carattere da tastiera, è preferibile usare la getch piuttosto che la scanf (che resta una delle peggiori funzioni mai congegnate).

    Ciaociao
  • Re: Aiuto programmino che non va

    Haui ragione ho sbagliato a scrivere ma in realtà con il visual il codice l'ho scritto bene ovvero if (scelta == ' ').

    Ma pur scrivendolo bene non risolvo il mio problema non riesco proprio a capire il perchè.

    aiutatemiiiiiii
  • Re: Aiuto programmino che non va

    Risolto grazie comunque il problema era nello scanf o meglio come diceva bottomap è meglio utilizzare il getch()

    grazie mille a tutti soprattutto a bottomap

    ciao
Devi accedere o registrarti per scrivere nel forum
6 risposte