Conversor a binario


/*
Bienvenidos a todos. Este es un programa muy curioso. Empecemos. La funcion de este programa es ver si sabes binario al fin y al cabo. Lo que hace es generar un numero entre el 1 y el 10.000, el cual debereis escribirlo vosotros en binario. El programa comprobara si el resultado que habeis escrito es correcto o no; en caso de que no lo sea, os mostrara la solucion para que la compareis con lo que habiais escrito. Espero que os guste, y estudiad mucho antes de usarlo XDXDXD (es broma ;) tampoco es para tanto)
*/

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include <windows.h>
#include <conio.h>
#include <time.h>

int main()
{
    long resp;
    int i, j ,k;
    printf("  **  EXAMEN DE BINARIO  **\n\n");
    printf("  Se va a generar un numero aleatorio entre el 1 y el 10.000, y deberas pasarlo a binario.");
    printf("\n  Presiona ENTER cuando estes listo.");
    char ENTER;
    ENTER = getchar();
    i = time(NULL);
    srand(i);
    for(j=0;j<1;)
    {
        k = rand()%10000;
        j++;
        if(k<1 || k>10000)
        {
            j = 0;
        }
        else if(k>=1 || k<=10000)
        {
            printf("\n  El numero es %d", k);
        }
    }
    printf("\n  Tu respuesta es:  ");
    scanf(" %ld", &resp);
    long binario_ale_reves[50];
    int a, b, c, cont=0;
    for(a=0;a<binario_ale_reves;a++)
    {
        binario_ale_reves[a] = k%2;
        cont++;
        k = k/2;
        if(k==1)
        {
            binario_ale_reves[a+1] = 1;
            cont++;
            break;
        }
    }
    long binario_ale[cont-1];
    for(b=0;b<cont;b++)
    {
        binario_ale[b] = binario_ale_reves[cont-b-1];
    }
    printf("\n\n  La respuesta correcta es:  ");
    for(c=0;c<cont;c++)
    {
        printf("%d", binario_ale[c]);
    }
    int divisor_10_inicial = 1;
    int x, y, z;
    for(x=0;x<cont;x++)
    {
        divisor_10_inicial = divisor_10_inicial * 10;
    }
    long resp_bin[cont-1];
    for(y=0;y<cont;y++)
    {
        resp_bin[y] = resp / divisor_10_inicial;
        resp = resp / divisor_10_inicial;
        resp = resp - resp_bin[y];
        resp = resp * divisor_10_inicial;
    }

    if(resp_bin[cont-1] == binario_ale[cont-1])
    {
        printf("\n\n  Acertastes!!");
    }
    else
    {
        printf("\n\n  La proxima vez sera!!");
    }

    return 0;
}



© Todos los derechos de cada programa publicado en la web son reservados
Imágenes creadas en Canva
Creado con Webnode Cookies
¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar