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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Ayuda errores, ejercicio dia, mes, año Codificación a C en: 31 Marzo 2015, 16:58 pm
Gracias!!
He visto que era necesario poner el main.
Este ejercicio me lo han puesto como practica.
El problema de los warnings eran que faltaban return.

2  Programación / Programación C/C++ / Ayuda errores, ejercicio dia, mes, año Codificación a C en: 31 Marzo 2015, 12:13 pm
Hola que tal,
Compañeros soy nuevo en esto de la programación "c" constantemente tengo dudas, supongo que es normal. A ver si me podeis ayudar con un codigo. El codigo me lo han pasado en algorismo y lo estoy pasando a "C", tengo algun fallo.
En el codigo no me pedian la funcion main. Pero si no la incluyo me da fallo, Aun asi tengo un warnning. El codigo tiene dos warnings uno en la linea de main y el otro en la linea anterior a  
                         int isAValidDay (int nDays, int nDaysMonth){

El tema es que tengo dos warnings me podeis ayudar a solucionarlo. Gracias.

Código
  1. #include <stdio.h>
  2.  
  3. //algorisme valiDate
  4.  
  5.  
  6.  
  7. void testNOfDaysFebruary();
  8. void testlsACorrectDate();
  9. int nOfdaysfebruary(int year);
  10.  
  11.  
  12.  
  13. typedef enum {FALSE, TRUE} bool; //Estructura booleana.
  14.  
  15. int main(){ //La funcion main vacia?
  16. }
  17.  
  18. //Variables
  19. int nDays;
  20. //Codigo
  21. int nOfdaysfebruary(int year)
  22. {
  23. if (year% 4 == 0 && year% 100 != 0 ){     //(year mod 4 = 0 and year mod 100 &#8800; 0) llavors
  24. nDays=29;
  25. }
  26. else
  27. nDays=28;
  28.  
  29. return nDays;
  30. }
  31.  
  32. void testNOfDaysFebruary()
  33. /*printf("Test number of days February\n");*/
  34. {
  35. if (nOfdaysfebruary(2016 !=29)){
  36. printf("%c ",'E');
  37. printf("%d ",2016);
  38. printf("%c ",' ');   //Pendiente REVISAR imprimir un espacio
  39. }
  40. if (nOfdaysfebruary(2014 !=28)){
  41. printf("%c ",'E');
  42. printf("%d ",2014);
  43. printf("%c ",' ');   //Pendiente REVISAR imprimir un espacio
  44. }  
  45. if (nOfdaysfebruary(2000 !=29)){
  46. printf("%c ",'E');
  47. printf("%d ",2016);
  48. printf("%c ",' ');   //Pendiente REVISAR imprimir un espacio
  49. }
  50. if (nOfdaysfebruary(1600 !=29)){
  51. printf("%c ",'E');   //Imprimir caracter
  52. printf("%d ",1600);
  53. printf("%c ",' ');   //Pendiente REVISAR imprimir un espacio
  54. }
  55. }
  56. int nDaysMonth (int month, int year)
  57.  
  58. {
  59.  
  60. if ( month ==2){
  61. nDays = nOfdaysfebruary(year);
  62. }
  63. else {
  64. if(month == 4 || month == 6 || month == 9 || month == 11 )
  65. nDays=30;
  66. else
  67. nDays=31;
  68. }
  69.  
  70.  
  71. }
  72. int isAValidDay (int nDays, int nDaysMonth){ //FUNCION
  73.  
  74. return ((nDays >= 1) & (nDays <= nDaysMonth)); //verificar  se han colocado dos parentesis
  75. }
  76.  
  77. int isAvalidMonth(int month){ //FUNCION
  78. return (month <13); /*retorno*/
  79. }
  80.  
  81.  
  82. int isACorrectDate(int day, int month, int year){   // FUNCION
  83.  
  84. //typedef enum {FALSE, TRUE} bool;
  85. bool dateOK;
  86. int maxDays;
  87.  
  88. dateOK=FALSE;   //Tener en cuenta en mayusculas FALSE.
  89.  
  90. if (isAvalidMonth (month)){
  91. maxDays=nDaysMonth(month, year);
  92. dateOK = isAValidDay (day, maxDays);
  93. }
  94.  
  95. return dateOK; /*retorno*/
  96. }
  97.  
  98. /* aquesta acció us la donem ja codificada en C */
  99. void testIsACorrectDate(){
  100. printf("Test isACorrectDate\n");
  101. if (isACorrectDate(31, 4, 2015)) printf("error 31/4/2015\n");
  102. if (!isACorrectDate(31, 3, 2015)) printf("error 31/3/2015\n");
  103. if (isACorrectDate(29, 2, 2015)) printf("error 29/2/2015\n");
  104. if (!isACorrectDate(29, 2, 2400)) printf("error 29/2/2400\n");
  105. }

Mod: Tema modificado, los codigos deben ir en etiquetas GeSHi
3  Programación / Programación C/C++ / 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
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines