Skip to content

Commit

Permalink
Reto mouredev#14 - c
Browse files Browse the repository at this point in the history
## Describe tus cambios
***(Opcional)*** *Sobre todo aconsejable si la "Pull Request" se corresponde con una corrección adicional y no con la presentación de un ejercicio.*

## Comprobaciones
Asegúrate de cumplir los siguientes puntos antes de realizar la "Pull Request":

- [ ] El título de mi Pull Request sigue este formato: "Reto #[número] - [lenguaje_utilizado]". *(Ej: Reto #0 - Kotlin")*
- [ ] El nombre el fichero que se corresponde con el de mi usuario en GitHub más la extensión del lenguaje. *(Ej: mouredev.kt)*
- [ ] El fichero de corrección se encuentra dentro del directorio del ejercicio y en una carpeta con el nombre del lenguaje de programación utilizado en minúsculas. *(Ej: Reto #0/kotlin/mouredev.kt)*
- [ ] He revisado que el nombre del directorio del lenguaje no es conflictivo:
	- c#, no csharp
	- c++, no cplusplus
	- go, no golang
	- javascript, no js
- [ ] Únicamente he incluído los ficheros de ejercicios. No se aceptarán Pull Requests que contengan archivos adicionales asociados a editores de código o semejantes.

## Información

* Tienes toda la información sobre los retos semanales en [retosdeprogramacion.com/semanales2023](https://retosdeprogramacion.com/semanales2023).
* Cada semana se realizará la corrección en directo y publicación de un nuevo reto en [twitch.tv/mouredev](https://twitch.tv/mouredev).
* Recuerda que tienes un grupo de apoyo llamado "reto-semanal" en [Discord](https://discord.gg/mouredev).

## Describe tus cambios
***(Opcional)*** *Sobre todo aconsejable si la "Pull Request" se corresponde con una corrección adicional y no con la presentación de un ejercicio.*

## Comprobaciones
Asegúrate de cumplir los siguientes puntos antes de realizar la "Pull Request":

- [ ] El título de mi Pull Request sigue este formato: "Reto #[número] - [lenguaje_utilizado]". *(Ej: Reto #0 - Kotlin")*
- [ ] El nombre el fichero que se corresponde con el de mi usuario en GitHub más la extensión del lenguaje. *(Ej: mouredev.kt)*
- [ ] El fichero de corrección se encuentra dentro del directorio del ejercicio y en una carpeta con el nombre del lenguaje de programación utilizado en minúsculas. *(Ej: Reto #0/kotlin/mouredev.kt)*
- [ ] He revisado que el nombre del directorio del lenguaje no es conflictivo:
	- c#, no csharp
	- c++, no cplusplus
	- go, no golang
	- javascript, no js
- [ ] Únicamente he incluído los ficheros de ejercicios. No se aceptarán Pull Requests que contengan archivos adicionales asociados a editores de código o semejantes.

## Información

* Tienes toda la información sobre los retos semanales en [retosdeprogramacion.com/semanales2023](https://retosdeprogramacion.com/semanales2023).
* Cada semana se realizará la corrección en directo y publicación de un nuevo reto en [twitch.tv/mouredev](https://twitch.tv/mouredev).
* Recuerda que tienes un grupo de apoyo llamado "reto-semanal" en [Discord](https://discord.gg/mouredev).
  • Loading branch information
FranzxFernandez committed Jan 9, 2024
1 parent 7d5ac57 commit 240fce0
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions Retos/Reto #14 - OCTAL Y HEXADECIMAL [Fácil]/c/FranzxFernandez.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
/*
* Crea una función que reciba un número decimal y lo trasforme a Octal
* y Hexadecimal.
* - No está permitido usar funciones propias del lenguaje de programación que
* realicen esas operaciones directamente.
*/

#include <stdio.h>

static void decimal_to_octal_and_hex(int number);
static void test_decimal_to_octal_and_hex();

int main(int argc, char const *argv[])
{
test_decimal_to_octal_and_hex();
return 0;
}
static void decimal_to_octal_and_hex(int number)
{
printf("Decimal: %d\n", number);
if (number < 0)
{
return;
}

int array_octal[10] = {0}, j = 0;
char array_hex[10] = {0};
int guardar = number;
while (number != 0)
{
array_octal[j++] = number % 8;
number /= 8;
}

printf("Octal: ");
for (int i = j; i >= 0; i--)
{
printf("%d", array_octal[i]);
}
printf("\n");

j = 0;

while (guardar != 0)
{
int temp = guardar % 16;
if (temp < 10)
{
array_hex[j++] = 48 + temp;
}
else
{
array_hex[j++] = 55 + temp;
}
guardar /= 16;
}

printf("Hex: ");
for (int i = j; i >= 0; i--)
{
printf("%c", array_hex[i]);
}
printf("\n");
}
static void test_decimal_to_octal_and_hex()
{
int test_cases[] = {192, 0, 255, 93, 125, 10, 16};
int num_cases = sizeof(test_cases) / sizeof(test_cases[0]);

for (int i = 0; i < num_cases; i++)
{
printf("Test Case %d:\n", i + 1);
decimal_to_octal_and_hex(test_cases[i]);
printf("\n");
}
}

0 comments on commit 240fce0

Please sign in to comment.