[c] simulare codice segreto

di il
4 risposte

[c] simulare codice segreto

Simulare un sistema per determinare un codice segreto. Il programmatore definisce un codice segreto di 5 caratteri dell'alfabeto, e in maniera casuale simula dei codici fino a che non ha trovato quello esatto. Visualizzare il numero di prove effettuate e il codice esatto trovato.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{char segreto[]={'o','c','i','o','\0'};
 int tentativi=0;
 int i;
 char cod_casual[5];
  srand(time(NULL));
  for(i=0;i<5;i++){
  while(cod_casual[i]!= segreto[i]){
  cod_casual[i]=rand();
  tentativi++;
}
  cod_casual[i++];
}
for(i=0;i<5;i++){
if(cod_casual[i]==segreto[i])
printf("il codice segreto e':%c\n",cod_casual[i]);
}
printf("il numero dei tentativi:%d\n",tentativi);
  system("PAUSE");	
  return 0;
}
perchè non riesco a visualizzare tutti i caratteri del codice segreto??

4 Risposte

  • Re: [c] simulare codice segreto

    Perche non limiti i rand() nel range dei caratteri del alfabeto?
    
    cod_casual[i]= 'a' + (rand() % 26);
    
    questa riga non ha senso
    
    cod_casual[i++];
    
  • Re: [c] simulare codice segreto

    skynet ha scritto:


    perche non limiti i rand() nel range dei caratteri del alfabeto?
    
    cod_casual[i]= 'a' + (rand() % 26);
    
    questa riga non ha senso
    
    cod_casual[i++]; infatti questa riga si può anche omettere
    
    non funziona con la rand limitata
  • Re: [c] simulare codice segreto

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main()
    {
    	char segreto[]={'o','c','i','o','\0'};
    	int tentativi=0;
    	int i;
    	char cod_casual[5];
    	srand(time(NULL));
    	for(i=0;i<4;i++)
    	{
    		while(cod_casual[i]!= segreto[i])
    		{
    			cod_casual[i]= 'a' + (rand() % 26);
    			tentativi++;
    		}
    	}
    	cod_casual[4] = '\0';
    	printf("il codice segreto e':%s\n",cod_casual);
    
    	printf("il numero dei tentativi:%d\n",tentativi);
    	system("PAUSE");   
    	return 0;
    }
    
  • Re: [c] simulare codice segreto

    Piccola modifica con 5 caratteri invece di 4.
    
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    int main()
    {
    	char segreto[]={'f','e','s','t','a','\0'};
    	int tentativi=0;
    	int i;
    	char cod_casual[5];
    	srand(time(NULL));
    	for(i=0;i<5;i++)
    	{
    		while(cod_casual[i]!= segreto[i])
    		{
    			cod_casual[i]= 'a' + (rand() % 26);
    			tentativi++;
    		}
    	}
    	printf("il codice segreto e':");
    	for(i = 0; i < 5; i++)
    		printf("%c",cod_casual[i]);
    
    	printf("\nil numero dei tentativi:%d\n",tentativi);
    	system("PAUSE");   
    	return 0;
    }
    
Devi accedere o registrarti per scrivere nel forum
4 risposte