Stack Overflow en español Asked by El_Enzo on November 15, 2021
El código ya lo tengo hecho, es el siguiente:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int decimal, b[100], i, j, n;
printf("DECIMALttBINARIOn0tt0n");
for(decimal=1; decimal<=19; decimal++)
{
printf("%dn", decimal);
}
printf("tt");
for(decimal=1; decimal<=19; decimal++)
{
i=0;
n=decimal;
while(n>0)
{
b[i]=n%2;//b[0]=0, b[1]=1
n=n/2;//decimal=1, decimal=0
i++;//i=1, i=2
}
for(j=i-1; j>=0; j--)
{
printf("%d", b[j]);
}
printf("n");
}
return 0;
}
Quisiera imprimir la tabla equivalente de la siguiente forma:
Pero lo que logro únicamente con mi código es que los números binarios se impriman debajo del decimal y no debajo del binario.
Pero lo que logro únicamente con mi código es que los números binarios se impriman debajo del decimal y no debajo del binario.
Lo que pasa es que las dos tabulaciones que haces solo afectan al primer número que se imprime en la iteración: printf("tt");
. Por cada iteración del ciclo estás cambiando la linea de impresión: printf("n");
Necesitas imprimir el número decimal y su equivalente a binario en la misma linea. Para esto tienes que imprimir en el mismo ciclo ambos valores. Esto se hace ubicando el ciclo for
que imprime los números binarios dentro del que imprime los decimales.
int main(void) {
int decimal;
int b[100];
int i,j,n;
printf("DECIMALttBINARIOn0tt0n");
for(decimal = 1;decimal <= 19;decimal++) {
i = 0;
n = decimal;
while(n > 0) {
b[i] = n % 2;//b[0]=0, b[1]=1
n = n / 2;//decimal=1, decimal=0
i++;//i=1, i=2
}
printf("%dtt",decimal);
for(j = (i - 1);j >= 0;j--) {
printf("%d",b[j]);
}
printf("n");
}
return 0;
}
Hay que ponerle atención a estas lineas
printf("%dtt",decimal);
for(j = (i - 1);j >= 0;j--) {
printf("%d",b[j]);
}
printf("n");
La primera linea imprime el número decimal, además de dos tabulaciones para luego imprimir el binario. El ciclo for
va a imprimir todos los números del array que almacena el número binario. Finalmente se cambia de linea con: "n"
, y luego sigue la otra iteración
Decimal|Tabulación|Tabulación|Binario|Cambio de linea
Por esto mismo se obtiene
DECIMAL BINARIO
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111
16 10000
17 10001
18 10010
19 10011
Espero haberte ayudado, saludos.
Answered by user166844 on November 15, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP