elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  warning en practica, concatenar dos numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: warning en practica, concatenar dos numeros  (Leído 1,646 veces)
lanak_29

Desconectado Desconectado

Mensajes: 3


Ver Perfil
warning en practica, concatenar dos numeros
« en: 30 Marzo 2015, 13:44 pm »

Para vosotros sera sencillo pero para mi es complicado, soy principiante. He conseguido arreglar los fallos pero tengo un warning en la linea 32. Esta practica se trata de un concatenado de dos numeros no superiores  a 9999. He conseguido arreglar todos los errores que habia en el codigo. Pero me queda un warning. El objetivo de esta practica era el de arreglar la sintasix y posibles fallos. recordad linea 32. Gracias
Código
  1. #include <stdio.h>
  2. #define ADDED_DIGIT 1;
  3.  
  4. int numReverse(int num); //pendiente posible que tenga que ser void y asterisco // int numReverse(int num);
  5. int numConcatenate(int num1, int num2); //fallo movimiento de funcion aqui arriba.
  6.  
  7. /* concatenateTwoNumbers */
  8. int main(int argc, char **argv)
  9. {
  10. int num1, num2;
  11. int concat;
  12.  
  13. /*testNumReverse();*/
  14. /*testConcatenarNumeros();*/
  15. scanf("%d", &num1);  /* el numero ha d'estar entre 1 i 9999*/       //fallo faltaba &
  16. scanf("%d", &num2);  /* el numero ha d'estar entre 1 i 9999*/ //fallo
  17.  
  18. concat = numConcatenate(num1, num2);
  19. printf("%d\n", concat);
  20. return 0;
  21. }
  22. int numConcatenate(int num1, int num2) //FUNCION
  23. {
  24. int concat;
  25. int endValue;
  26. int endDigit;
  27.  
  28. concat = num1;
  29. endDigit = num2 % 10;
  30. if (endDigit == 0) { //fallo faltaba =
  31.  
  32. num2 = ADDED_DIGIT + num2 * 10;
  33.  
  34. /* afegim dígit com a marca per mantenir zeros a l’esquerra:
  35. * numReverse(200) seria 2 en comptes de 002. Si afegim un 1
  36. * numReverse(2001) val 1002. Manté zeros, 1 és marca de final
  37. */
  38. endValue = ADDED_DIGIT;
  39. }
  40. else {
  41. endValue = 0;
  42. }
  43.  
  44. num2 = numReverse(num2);
  45. while (num2!=endValue) {
  46. concat = concat * 10 + num2 % 10;
  47. num2 = num2 / 10;
  48. }
  49. return concat;
  50. }
  51.  
  52. int numReverse(int num) //FUNCION
  53. {
  54. int reverse;
  55.  
  56. reverse = 0;
  57. while (num > 0) {
  58. reverse = reverse * 10 + num % 10;
  59. num = num / 10;
  60. }
  61. return reverse; //fallo faltaba ;
  62. }
  63.  

Mod: tema modificado los códigos deben ir en etiquetas GeSHi, modifica el titulo del post, el mismo debe ser descriptivo al problema


« Última modificación: 30 Marzo 2015, 13:58 pm por lanak_29 » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: warning en practica, concatenar dos numeros
« Respuesta #1 en: 30 Marzo 2015, 14:04 pm »

modifica el titulo del tema, debe ser descriptivo según indican las reglas del foro...

el problema viene de la linea 2 los define no lleven ";" ya que el define el toma lo que está y lo incluye de manera literal... a demás el preprocesador hace sustituciones simple de los defines..

tu codigo
Código
  1. num2 = ADDED_DIGIT + num2 * 10;

luego de ser interpretado
Código
  1. num2 = 1; + num2 * 10;

lo que el te dice es que " + num2 * 10;" no tiene sentido


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines