-1
I’m in trouble on one issue and I can’t solve it. My problem relates to how to insert these values and organize them in the same way as the example below.
Create a program in C/C++ reads a positive n number and prints, in ascending order, all hexadecimal numbers with n Nibbles. (1 Nibble = 4 bits or 1 2 byte)
Additional restrictions:
- Can’t work with numbers in decimal format and convert them to hexadecimal.
- The solution must adopt, necessarily, a vector to store the Nibbles.
- The solution may be recursive or not.
Example 1:
#include <stdio.h>
#include <stdlib.h>
/*
Crie um programa em C/C++ lê um número positivo n e imprime,
em ordem crescente, todos os números hexadecimais com n nibbles. (1 nibble = 4 bits ou 1⁄2 byte)
Restrições adicionais:
1. Não pode trabalhar com números no formato decimal e convertê-los para hexadecimal.
3. A solução deve adotar, obrigatoriamente, um vetor para armazenar os nibbles.
4. A solução pode ser recursiva ou não.
*/
int main (int argc, char* argv){
unsigned short int n = 0;
painel_quantidade_n(n);
ordem_crescente();
/*
int hex = 0xFF;
printf("Valor inteiro: %i \n", hex);
printf("Valor hex: %x \n", hex);
printf("Valor hex (maiusculo): %X \n", hex);
printf("Valor hex (4 casas): %4x \n", hex);
printf("Valor hex (Completar com zeros): %04x \n", hex);*/
return 0;
}
int painel_quantidade_n(int n){
printf("DIGITE A QUANTIDADE DE NIBBLES:\n");
scanf("%d", &n);
if(n < 0){
printf("OPS ... VOCE DIGITOU: (%d) NIBBLES... TENTE COM UM NUMERO POSITIVO !\n\n", n);
n = 0;
painel_quantidade_n(n);
} else {
return n;
}
}
void ordem_crescente(){
int nibbles[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f};
int tam = (sizeof(nibbles) / sizeof(nibbles[0])), tmp = 0;
for (int i=0; i<tam; i++){
if(nibbles[i]>nibbles[i+1]){
tmp = nibbles[i+1];
nibbles[i+1] = nibbles[i];
nibbles[i] = tmp;
i = -1;
}
}
printf("\n*IMPRIME ORDEM CRESCENTE*\n");
for(int i=0; i<tam; i++){
printf("%04X\n", nibbles[i]);
}
}
My man, congratulations. You did great! I will analyze your code and learn from it.
– user109930