Gestione di un pin con tentativi

di Anonimizzato16454 il
8 risposte
Scrivere un programma per simulare l' inserimento di un PIN per il telefonino. Nella prima fase viene costruito il PIN di riferimento, che deve essere di lunghezza 5 e deve essere costruito in modo casuale. Nella seconda fase l' utente inserisce il codice di tentativo e ha al massimo 3 tentativi per indovinarlo.

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
    int pin1,pin2,pin3,pin4,pin5,tentativi,max_tentativi=3,conf_pin; 
    int i;      /* dichiaro le variabili */
   
    srand(time(NULL));
    pin1=rand()%10;
    pin2=rand()%10;
    pin3=rand()%10;
    pin4=rand()%10;
    pin5=rand()%10;
    
    int A[]={pin1,pin2,pin3,pin4,pin5};

    while(tentativi < max_tentativi)
    {
        printf("Conferma il PIN:\t");
        scanf("%d",&conf_pin);
        tentativi++;
        if((strcmp(conf_pin,a[5]))&&(tentativi <= max_tentativi))
        {
            printf("Welcome\n");
            break;
        }
        else
       {  
             for(i=0;i<5;i++)
             {
                  printf("il PIN era %d",a[i]);
             }
    }
    system("PAUSE");
    return 0; /* indica che il PROGRAMMA è terminato con successo */
} /* fine della funzione main */

8 Risposte

  • Scusa, ma non ti pare che manchi la domanda nel tuo post?
  • Cosa ne pensate di questa mia risposta? posso renderla ancora migliore?
  • C'è sicuramente molto da rivedere ...

    Le variabili pin1 .... non hanno senso. Se usi un array A allora utilizza un ciclo e genera i valori direttamente negli elementi dell'array.

    Inoltre, l'array che hai utilizzato è di interi, quindi non si capisce come fai ad utilizzare la strcmp che è per gli array di char (terminati da null) ... ovvero usi una funzione per le stringhe con un vettore di interi ....

    In realtà c'è una grande confusione nell'utilizzo di tipi di variabili ...
  • Salve
    Secondo me per il pin potresti utilizzare una stringa.
  • Son io che non capisco oppure state prendendo la strada sbagliata

    Un numero di 5 cifre è facilmente presentabile con un intero.

    if(pin_scelto != pin_immesso)
    tentativi ++;
    Se tentativi >= max_tentativi
    Game Over
  • Quando vengono proposti esercizi io non so cosa sta facendo chi lo propone.

    Probabilmente sta affrontando l'uso dei vettori e magari ancora non ha chiaro il funzionamento.

    Per questo mi mantengo sui binari del codice proposto e della risoluzione dei suoi problemi. Del resto non ho proposto alternative.

    Naturalmente, se lo dovessi fare io, come ha detto skynet, userei una semplice variabile intera, anche se skynet non ha controllato la lunghezza del pin ...
  • Inizialmente avevo optato anche io per una variabile intera però ho cambiato idea perché nei pin anche lo zero viene usato come cifra e viene anche utilizzato come cifra iniziale ma con una variabile intera non si può rappresentare il pin 00123 perché verrebbe immagazzinato come 123, potrebbe funzionare lo stesso ma pensavo che il pin si dovesse rappresentare tutto intero.
  • Il valore del pin e la sua rappresentazione sono cose indipendenti
Devi accedere o registrarti per scrivere nel forum
8 risposte