Foto de Sergio C.
Sergio há 2 anos
Enviada pelo
Site

Char para int

Neste seguinte programa preciso de ajuda para trocar os números de char para int.

O código é o seguinte:

#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <time.h>

int i;
char resposta[6],adivinha[6];
FILE *fp;


void menu()
{
    
    
    printf("Bem-vindo ao jogo de adivinhar um número com 6 digitos!\n");

    
}


void gerador()//numero aleatorio
{
    srand(time(0));
    for(i=0;i<6;i++)
    {
    
    resposta[i]=rand()%10+48;
    
    }
}

void tentativa(int y)
{
    printf("Esta é a %d/7 tentativa\n\n",y);
    for(i=0;i<6;i++)
    {
        do
        {
        printf("Advinha o número! %d:",i+1);
        scanf("%c",&adivinha[i]);
        getchar();
        if((adivinha[i]=='1')||(adivinha[i]=='2')||(adivinha[i]=='3')||(adivinha[i]=='4')||(adivinha[i]=='5')||(adivinha[i]=='6')||(adivinha[i]=='7')||(adivinha[i]=='8')||(adivinha[i]=='9')||(adivinha[i]=='0'))
        {
        printf("");
        }else
        {
        printf("Número inválido\nClica Enter e tenta outra vez!\n");
        }
        }while((adivinha[i]!='1')&&(adivinha[i]!='2')&&(adivinha[i]!='3')&&(adivinha[i]!='4')&&(adivinha[i]!='5')&&(adivinha[i]!='6')&&(adivinha[i]!='7')&&(adivinha[i]!='8')&&(adivinha[i]!='9')&&(adivinha[i]!='0'));    
    }
}

int check()
{
    int x;
    for(i=0;i<6;i++)
    {
    if(resposta[i]==adivinha[i])
    {
    printf("%c",adivinha[i]);
    x++;
    }
    else
    printf("-");
    }
    printf("\n");
    if(x==6)
    return 1;
    else
    return 0;
    
}


int main()
{
    setlocale(LC_ALL,"Portuguese");
    int bin=0,y,momento;
    char recorde[100],nome[100];
    system("color A");
    menu();
    gerador();
    fp = fopen("Recorde.txt","r");
    if(fp!=NULL)
    {
    
    fgets(recorde,100,fp);
    
    fclose(fp);
    printf("O recorde atual é %s\n",recorde);
    }
    fp=fopen("Recorde.txt","r");
    if(fp!=NULL)
    fscanf(fp,"%d",&momento);
    else
    momento=10000;
    
    
    for(y=1;y<=7;y++)
    {
    tentativa(y);
    bin=check();
    if(bin==1)
    {
        printf("Parabens adivinhaste em %d tentativas\n",y);
        if(y<momento)
        {
            printf("Bateste o record, escreve o teu nome para o registo!\n");
            gets(nome);
            fp = fopen("Recorde.txt","w");
            fprintf(fp,"%d - %s",y,nome);
            fclose(fp);
            
        }
        break;
    }
    }
    
    printf("Resposta = %c%c%c%c%c%c",resposta[0],resposta[1],resposta[2],resposta[3],resposta[4],resposta[5]);
    
    
    
    
}

 

Fico agradecido por qualquer resposta! ❤️

Quanto mais rapido agradeço!

Professor Diogo M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Diogo

Olá!

Não tem muito segredo. Basicamente, será mudar a declaração dos vetores de char para int e cuidar com os scanfs e printfs, mudando o %c para %d.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Envie uma dúvida grátis
Resposta na hora da Minerva IA e de professores particulares
Enviar dúvida
Professor Rafael P.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Contatar Rafael

Então, se não houver a necessidade de armazenar o número como um vetor de caracteres, basta usar variáveis inteiras.

No scanf, pode-se utilizar o "%d" para capturar um inteiro, e se passa como segundo parâmetro o endereço da sua variável, assim:

scanf("%d", &advinha);

Para se obter um número aleatório de seis dígitos, por outro lado, é um pouco mais complicado, pois a função rand() de C gera um número de 0 a 32768 (por aí), salvo engano. Então uma alternativa é você gerar dois números aleatórios, multiplicá-los, e tirar o resto de 1000000.

Um professor já respondeu

Envie você também uma dúvida grátis
Ver resposta
Minerva IA
do Profes
Respostas na hora
100% no WhatsApp
Envie suas dúvidas pelo App. Baixe agora
Precisa de outra solução? Conheça
Aulas particulares Encontre um professor para combinar e agendar aulas particulares Buscar professor