Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/04/2010, 05:55
nestor1991ag
 
Fecha de Ingreso: abril-2010
Mensajes: 13
Antigüedad: 14 años
Puntos: 0
Respuesta: binario, decimal, octal, hexadecimal

Mi codigo ha quedado asi:
Código c:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5.  
  6. void decimalb (char *n);
  7. void decimalo (char *n);
  8. void decimalh (char *n);
  9. void convertirb (char *n);
  10. void convertiro (char *o);
  11. void convertirh (char *h);
  12.  
  13. void main()
  14. {
  15.     char a[100];
  16.     char i, base, convertir, fuera=0;
  17.  
  18.     for (i=0; i<=100; i++)
  19.     {
  20.         scanf ("%d", &a[i]);
  21.  
  22.         if (a[i]!='*')
  23.         {
  24.             fuera=0;
  25.         }
  26.  
  27.         if (a[i]=='*')
  28.         {
  29.             fuera++;
  30.         }
  31.     }
  32.  
  33.     printf ("En que base esta?\n");
  34.     scanf ("%c", &base);
  35.  
  36.     printf ("A que base la quieres convertir? (binario, octal, decimal o hexadecimal\n");
  37.     scanf("%c", &convertir);
  38.  
  39.     if (base=='B')
  40.     {
  41.         decimalb(a);
  42.     }
  43.  
  44.     if (base=='O')
  45.     {
  46.         decimalo(a);
  47.     }
  48.  
  49.     if (base=='H')
  50.     {
  51.         decimalh(a);
  52.     }
  53.  
  54.     if (convertirb=='B')
  55.     {
  56.         convertirb(a);
  57.     }
  58.  
  59.     if (convertirb=='O')
  60.     {
  61.         convertiro(a);
  62.     }
  63.  
  64.     if (convertirb=='H')
  65.     {
  66.         convertirh(a);
  67.     }
  68.  
  69.    
  70.  
  71.     getch();
  72. }
  73.  
  74. void decimalb (char *n)
  75. {
  76.     int j=0, contador=0, i, decimalb=0;
  77.  
  78.     for (i=99; i>=0; i--)
  79.     {
  80.         if (n[i]==1)
  81.         {
  82.             decimalb=decimalb+(n[i]+(2*contador));
  83.             contador++;
  84.         }
  85.  
  86.         if (n[i]==0)
  87.         {
  88.             decimalb=decimalb+n[i]+(2*contador);
  89.             contador++;
  90.         }
  91.     }
  92.  
  93.     for (i=0; i<=99; i++)
  94.     {
  95.         n[i]='\0';
  96.     }
  97.  
  98.     n[0]=decimalb;
  99. }
  100.  
  101. void decimalo (char *n)
  102. {
  103.     int j=0, contador=0, i, decimalo=0;
  104.  
  105.     for (i=99; i>=0; i--)
  106.     {
  107.         if (n[i]==1)
  108.         {
  109.             decimalo=decimalo+(n[i]+(8*contador));
  110.             contador++;
  111.         }
  112.  
  113.         if (n[i]==0)
  114.         {
  115.             decimalo=decimalo+n[i]+(8*contador);
  116.             contador++;
  117.         }
  118.     }
  119.  
  120.     for (i=0; i<=99; i++)
  121.     {
  122.         n[i]='\0';
  123.     }
  124.  
  125.     n[0]=decimalo;
  126. }
  127.  
  128. void decimalh (char *n)
  129. {
  130.     int j=0, contador=0, i, decimalh=0;
  131.  
  132.  
  133.     for (i=99; i>=0; i--)
  134.     {
  135.  
  136.         if (n[i]=='A')
  137.         {
  138.             n[i]=10;
  139.         }
  140.         if (n[i]==1)
  141.         {
  142.             decimalh=decimalh+(n[i]+(16*contador));
  143.             contador++;
  144.         }
  145.  
  146.         if (n[i]==0)
  147.         {
  148.             decimalh=decimalh+n[i]+(16*contador);
  149.             contador++;
  150.         }
  151.     }
  152.  
  153.     for (i=0; i<=99; i++)
  154.     {
  155.         n[i]='\0';
  156.     }
  157.  
  158.     n[0]=decimalh;
  159. }
  160.  
  161. void convertirb (char *n)
  162. {
  163.     int i=0, binario=0;
  164.  
  165.     atoi (n);
  166.  
  167.  
  168.     for (i=0; n[i]==1;)
  169.     {
  170.         binario=binario+(n[i]%2);
  171.         n[i]=binario;
  172.     }
  173. }
  174.  
  175. void convertiro (char *n)
  176. {
  177.     int i=0, octal=0;
  178.  
  179.     atoi (n);
  180.  
  181.  
  182.     for (i=0; n[i]==1;)
  183.     {
  184.         octal=octal+(n[i]%8);
  185.         n[i]=octal;
  186.     }
  187. }
  188.  
  189. void convertirh (char *n)
  190. {
  191.     int i=0, hexadecimal=0;
  192.    
  193.     for (i=0; n[i]==1;)
  194.     {
  195.         hexadecimal=hexadecimal+(n[i]%16);
  196.         n[i]=hexadecimal;
  197.     }
  198. }

Los errores son los siguietnes.

1>------ Operación Generar iniciada: proyecto: 5Ejercicio28, configuración: Debug Win32 ------
1>Compilando...
1>5Ejercicio28.cpp
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(20) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(34) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(37) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : vea la declaración de 'scanf'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(54) : error C2446: ==' : no hay conversión de 'int' en 'void (__cdecl *)(char *)'
1> La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(54) : error C2040: '== : 'void (__cdecl *)(char *)' se diferencia en los niveles de direccionamiento indirecto de 'int'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(59) : error C2446: ==' : no hay conversión de 'int' en 'void (__cdecl *)(char *)'
1> La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(59) : error C2040: '== : 'void (__cdecl *)(char *)' se diferencia en los niveles de direccionamiento indirecto de 'int'
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(64) : error C2446: ==' : no hay conversión de 'int' en 'void (__cdecl *)(char *)'
1> La conversión de un tipo integral a un tipo de puntero requiere reinterpret_cast, conversión de estilo de C o conversión de estilo de función
1>d:\nestor\a.s.i\programación\ejercicios2\5ejerci cio28\5ejercicio28\5ejercicio28.cpp(64) : error C2040: '== : 'void (__cdecl *)(char *)' se diferencia en los niveles de direccionamiento indirecto de 'int'
1>El registro de compilación se guardó en el "file://d:\Nestor\A.S.I\Programación\EJERCICIOS2\5Ejercici o28\5Ejercicio28\Debug\BuildLog.htm"
1>5Ejercicio28 - 6 errores, 3 advertencias
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========





Llevo media hora con este error y no logro entender por qué puede ser.