Char para int

C++ int char

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!

Foto de Sergio C.
Sergio perguntou há 2 anos

Sabe a resposta?

Ganhe 10 pts por resposta de qualidade
Responder dúvida
2 respostas
1
votos
1 usuário votou nessa resposta como útil.
Professor Diogo M.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 2 anos
Melhor resposta
Essa foi a melhor resposta, escolhida pelo autor da dúvida

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.

Envie uma dúvida gratuitamente

Envie sua primeira dúvida gratuitamente aqui no Tira-dúvidas Profes. Nossos professores particulares estão aqui para te ajudar.

0
votos
Nenhum usuário votou nessa resposta como útil.
Professor Rafael P.
Identidade verificada
  • CPF verificado
  • E-mail verificado
Respondeu há 1 ano

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.

Professores particulares de C++

+ Ver todos
Encontre professor particular para te ajudar nos estudos
R$ 55 / h
Diogo M.
Hortolândia / SP
Diogo M.
5,0 (7 avaliações)
Horas de aulas particulares ministradas 18 horas de aula
Tarefas resolvidas 9 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
C++ - C++ C++ - estruturas de decisão C++ - Básico
Mestrado: Computação (Universidade de Campinas)
Ensino programação em linguagem c, python e eletrônica. Desde o básico ao avançado.
R$ 60 / h
César D.
Mogi Guaçu / SP
César D.
4,9 (811 avaliações)
Horas de aulas particulares ministradas 87 horas de aula
Tarefas resolvidas 995 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
C++ - Geral
Graduação: Matemática Aplicada e Computacional (Universidade Estadual de Campinas (UNICAMP))
Faça aulas de matemática, computação e programação em c, c++, java e python.
R$ 60 / h
Pollyanna D.
Contagem / MG
Pollyanna D.
4,4 (7 avaliações)
Horas de aulas particulares ministradas 19 horas de aula
Tarefas resolvidas 11 tarefas resolvidas
Identidade verificada
  • CPF verificado
  • E-mail verificado
1ª hora grátis
C++ - Geral
Doutorado: Ciência da Computação (Universidade Federal de Ouro Preto (UFOP))
Faça aula de Matemática, Inglês, Computação