Ir ao conteúdo

Posts recomendados

Postado

Olá!

Estou preso nesta questão aqui: "Escreva um programa que verifique quais números entre 0 e 10000 são capicua tanto em sua notação decimal quanto na notação hexadecimal." Eu já consegui fazer em decimal mas não consigo fazer em hexadecimal.

Segue o código.

#include <stdio.h>

int inverte(int x){
   int i=0;
   do{
      i=i*10+(x%10);
      x=x/10;
      }
      while(x>0);
      return (i);
}
main(){
        int x;
        printf("Digite um numero: ");
        scanf("%d",&x);
        if(inverte(x)==x && x >= 0 && x <= 10000){
            printf("O numero %d e capicua!\n", x);
            }
        else{
            printf("O numero %d nao e capicua!\n", x);
}
}

 

Postado

É a mesma coisa:

int inverteHex(int x){
    int i=0;
    do{
        i=i * 0x10 + (x % 0x10);
        x=x / 0x10;
    } while(x>0);
    return (i);
}

Só muda 10 para 0x10 (=16 em decimal).

 

Poderia fazer assim também:

int inverteHex(int x){
    int i=0;
    do{
        i=i * 16 + (x % 16);
        x=x / 16;
    } while(x>0);
    return (i);
}

Mas o primeiro representa melhor que está trabalhando com hexadecimais.

 

E não deve solicitar para o usuário digitar um número, o enunciado está pedindo para testar todos os números entre 0 e 10000 e achar todos que sejam capicua tanto em decimal quanto em hexadecimal (e imprimir todos eles nos 2 formatos).

Postado
Em 30/04/2020 às 20:54, isrnick disse:

É a mesma coisa:


int inverteHex(int x){
    int i=0;
    do{
        i=i * 0x10 + (x % 0x10);
        x=x / 0x10;
    } while(x>0);
    return (i);
}

Só muda 10 para 0x10 (=16 em decimal).

 

Poderia fazer assim também:


int inverteHex(int x){
    int i=0;
    do{
        i=i * 16 + (x % 16);
        x=x / 16;
    } while(x>0);
    return (i);
}

Mas o primeiro representa melhor que está trabalhando com hexadecimais.

 

E não deve solicitar para o usuário digitar um número, o enunciado está pedindo para testar todos os números entre 0 e 10000 e achar todos que sejam capicua tanto em decimal quanto em hexadecimal (e imprimir todos eles nos 2 formatos).

Funcionou!

Muito obrigado!

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!