All pastes #464683 Raw Edit

rodrigo

public c v1 · immutable
#464683 ·published 2007-04-29 17:28 UTC
rendered paste body
#include <stdio.h>#include <stdlib.h>/* * Ep1: Simulacao do jogo "Senha" * MAC 110 * Professor Joao Eduardo Ferreira * Feito por: Diogo Gomes e Rodrigo Sampaio Primo */int main() {    int n, /* comprimento da senha */	k, /* numero maximo para compor a senha */	senha, tentativa, /* armazenam a senha e as tentativas respectivamente */	senhaUn, tentativaUn, /* armazenam temporariamente cada um dos elementos (unidades) da seha e da tentativa */	tentativaTmp, senhaTmp, /* copia do valor da senha e da tentativa */	cont, /* armazena o numero de tentativas ate descobrir a senha */	i, e, /* contadores de controle dos for */	acertoPos, acertoNum; /* conta quantos acertos de posicao e numero (acertoPos) ou somente numero (acertoNum)*/        /* Esta parte recebe o comprimento da senha, o numero maximo para compo-la e a senha */    printf("Defina o comprimento da senha para o jogo (o valor máximo é 9):\n");    scanf("%d", &n);    printf("Defina o número maximo para compor a senha (o valor máximo é 9):\n");    scanf("%d", &k);    printf("Cada senha ou tentativa eh uma sequencia de %d numeros de 1 a %d\n", n, k);    printf("Insira uma senha de %d numeros:\n", n);    scanf("%d", &senha);    /* Inicializa algumas variaveis */    cont = 1;    i = 1;    tentativaTmp = tentativa;        /* Checar se o tamanha de "senha" eh menor ou igual a "n" e se respeita os valores possiveis definidos por "k" */    /* NAO FUNCIONA AINDA */    /*    while (tentativaTmp % 10) {	if (tentativaTmp % 10 > k) {	    printf("O programa falhou! A senha possui algum elemento de valor maior que o definido como valor maximo.");	    exit;	}	tentativaTmp = tentativaTmp / 10;	cont ++;	}	if (cont != n) {	printf("Tamanho invalido para senha. Voce inseriu uma senha com %d digitos, mas ela deve ter %d", cont, n);	exit;    }    */	    /* Recebe a primeira tentativa */    printf("Entre com a primeira tentativa para acertar a senha:\n");    scanf("%d", &tentativa);        /* Enquanto a tentativa nao for igual a senha executa os testes abaixo */    while (tentativa != senha) {	senhaTmp = senha;	acertoPos = 0;	acertoNum = 0;	/* Verifica quantos numeros a pessoa acertou no lugar errado */	for (i = 1; i <= n; i++) {	    tentativaTmp = tentativa;	    senhaUn = senhaTmp % 10;	    senhaTmp = senhaTmp / 10;	    for (e = 1; e <= n; e++) {		tentativaUn = tentativaTmp % 10;		tentativaTmp = tentativaTmp / 10;		if (tentativaUn == senhaUn) {		    acertoNum++;		    break;		}	    }	}	tentativaTmp = tentativa;	senhaTmp = senha;	/* Verifica quantos numeros a pessoa acertou no lugar e posicao corretos */	for (i = 1; i <= n; i++) {	    tentativaUn = tentativaTmp % 10;	    senhaUn = senhaTmp % 10;	    tentativaTmp = tentativaTmp / 10;	    senhaTmp = senhaTmp / 10;	    if (tentativaUn == senhaUn) {		acertoPos++;		acertoNum--;	    }	}	printf("Esta tentativa obteve %d pino(s) pretos e %d pino(s) brancos\n\n", acertoPos, acertoNum);	printf("Entre com uma nova tentativa para acertar a senha:\n");	scanf("%d", &tentativa);	cont++;    }    printf("Parabens voce acertou a senha %d em %d tentativa(s)\n", senha, cont);        return 0;}