RISOLTO Cerco un aiuto per un programma in c

Pubblicità
Stato
Discussione chiusa ad ulteriori risposte.

Lucio001

Nuovo Utente
Messaggi
16
Reazioni
3
Punteggio
22
Ciao a tutti, non riesco a capire qual'è il problema in questo programma scritto in c, l'errore che mi dà non è di sintassi ma del programma (e scritto in basso) qualcuno più esperto di me può aiutarmi?
C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n,i;
    i=0;
    n=0;
    i=1+(rand() %100);
    printf("Inserici il tuo numero FORTUNATO\n");
    prinf("inserisci un numero: ");
    scanf("d%", &n);
    if(n=i) {
        prinf("HAI VINTO");
    }    else {
        printf("HAI PERSO ritenta");
    }
    return 0;
}
 
Ultima modifica:
Per favore riporta il codice sul forum, non utilizzando uno screenshot. Devi racchiudere il codice nel tag CODE, se non sai come si fa, puoi consultare il Regolamento e informazioni utili sulla sezione programmazione. ?

A occhio noto alcuni errori: non stai inizializzando il seme srand(time(NULL));, cosa da fare prima di utilizzare rand().
L'altro errore è sicuramente la condizione dell'if: "uguale a" è il doppio uguale ==, non il singolo.
Un altro errore è lo specificatore di formato sullo scanf: lo specificatore è %d, non il contrario.
Un altro errore ancora è la funzione, che si chiama printf.

Quindi questo codice non compila nemmeno. Impara a leggere gli errori che ti dà il compilatore (eg. "undefined reference to prinf").

Ad ogni modo non ti serve inizializzare le variabili a 0, se prima di usarle modifichi comunque il loro valore (n lo leggi in input mentre la 'i' è generata random).


EDIT:
vedo che hai editato con il codice, hai fatto bene, hai anticipato il mio intervento.
Verifica però bene il testo, perchè hai "tagliato" una parola con il codice.
In merito allo screenshot lascialo, oppure riporta l'output quando compili.
 
Per favore riporta il codice sul forum, non utilizzando uno screenshot. Devi racchiudere il codice nel tag CODE, se non sai come si fa, puoi consultare il Regolamento e informazioni utili sulla sezione programmazione. ?

A occhio noto alcuni errori: non stai inizializzando il seme srand(time(NULL));, cosa da fare prima di utilizzare rand().
L'altro errore è sicuramente la condizione dell'if: "uguale a" è il doppio uguale ==, non il singolo.
Un altro errore è lo specificatore di formato sullo scanf: lo specificatore è %d, non il contrario.
Un altro errore ancora è la funzione, che si chiama printf.

Quindi questo codice non compila nemmeno. Impara a leggere gli errori che ti dà il compilatore (eg. "undefined reference to prinf").

Ad ogni modo non ti serve inizializzare le variabili a 0, se prima di usarle modifichi comunque il loro valore (n lo leggi in input mentre la 'i' è generata random).


EDIT:
vedo che hai editato con il codice, hai fatto bene, hai anticipato il mio intervento.
Verifica però bene il testo, perchè hai "tagliato" una parola con il codice.
In merito allo screenshot lascialo, oppure riporta l'output quando compili.
Grazie dell'aiuto ora compila ma qualsiasi numero io scriva mi dice sempre "hai vinto", ho sbagliato qualcosa nell'if?
 
Grazie dell'aiuto ora compila ma qualsiasi numero io scriva mi dice sempre "hai vinto", ho sbagliato qualcosa nell'if?

Si, probabilmente non hai modificato utilizzando l'operatore per effettuare il confronto, ovvero ==.
Dovresti riportare il codice che hai modificato però, così vediamo se è tutto ok.
 
Si, probabilmente non hai modificato utilizzando l'operatore per effettuare il confronto, ovvero ==.
Dovresti riportare il codice che hai modificato però, così vediamo se è tutto ok.
C:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n;
    srand(time(NULL));
    i=1+(rand() %100);
    printf("Inserici il tuo numero FORTUNATO\n");
    printf("inserisci un numero: ");
    scanf("%d", &n);
    if(n==i) {
        printf("HAI VINTO");
    }    else {
        printf("HAI PERSO ritenta");
    }
    return 0;
}
questo è con le correzioni
 
Bhe si, ti manca un include file, #include <time.h> e la variabile 'i' non è dichiarata (manca il tipo).
 
Bhe si, ti manca un include file, #include <time.h> e la variabile 'i' non è dichiarata (manca il tipo).
Ho aggiunto time.h e ho dichiarato la variabile, ma mi dà ancora sempre l'opzione "Hai vinto", altri consigli.
P.S. Grazie mille peri consigli precedenti!!
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int n,i;
    srand(time(NULL));
    i=1+(rand() %100);
    printf("Inserici il tuo numero FORTUNATO\n");
    printf("inserisci un numero: ");
    scanf("%d", &n);
    if(n==i) {
        printf("HAI VINTO");
    }    else {
        printf("HAI PERSO ritenta");
    }
    return 0;
}
 
Stato
Discussione chiusa ad ulteriori risposte.
Pubblicità
Pubblicità
Indietro
Top