Autor
|
Tema: ayuda con numeros pares, pero utilizando funciones (Leído 6,585 veces)
|
razyhook
Desconectado
Mensajes: 3
|
buenas, en la universidad, me mandaron a hacer el programa de saber de un grupo de numero, cuales son los pares y publicarlos, pero utilizando las funciones. despues de varios intento lo logro, pero tengo un error, que me estan saliendo unos -2, intercalado del numero par. esta es la codificación. #include <stdio.h> #include <stdlib.h> int pares(int numero1) { int z; if(numero1%2==0) { z=numero1; } return z; } int main() { int n1, n2, c, resultado; do { printf("\n ingrese el primer numero: "); scanf("%i", &n2); printf("\n por favor diga el numero final: "); scanf("%i", &n1); if(n1<n2) { printf("\n opcion invalida, por favor, el numero final no puede ser mayor que el inicial"); } } while(n1<n2); printf("\n los valores par son: "); for(c=n2; c<=n1; c++) { printf("\n %i", pares(c)); } }
Mod: Los códigos deben ir en etiquetas GeSHi
|
|
« Última modificación: 5 Agosto 2015, 08:45 am por engel lex »
|
En línea
|
|
|
|
engel lex
|
procura siempre inicializar las variables porque pueden contener basura...
|
|
|
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.
|
|
|
razyhook
Desconectado
Mensajes: 3
|
mira como sale: hace el trabajo, pero ese menos 2, me esta afectando el programa :C ya acomode la variable. #include <stdio.h> #include <stdlib.h> int pares(int numero1) { int par; if(numero1%2==0) { par=numero1; } return par; } int main() { int n1, n2, c, resultado; do { printf("\n ingrese el primer numero: "); scanf("%i", &n2); printf("\n por favor diga el numero final: "); scanf("%i", &n1); if(n1<n2) { printf("\n opcion invalida, por favor, el numero final no puede ser mayor que el inicial"); } } while(n1<n2); printf("\n los valores par son: "); for(c=n2; c<=n1; c++) { printf("\n %i", pares(c)); } }
|
|
« Última modificación: 6 Agosto 2015, 01:01 am por razyhook »
|
En línea
|
|
|
|
engel lex
|
simplemente ignoraste mi ultimo mensaje -.- así seguro avanzamos rapido
|
|
|
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.
|
|
|
A.I.
Desconectado
Mensajes: 61
|
Es indiferente que inicialice esa variable, en lugar de devolver basura devolverá un 0, que aquí también es basura. De hecho esa variable sobra. Esa función no te devuelve sólo los números pares, ni dice si un número es par o impar. Tu función debería ser una función "booleana" que devuelva si el número que le pasas es par o no.. int Es_Par(int numero){ if(numero%2==0) { return 1; //True } return 0; //False }
Y luego adaptar la parte del main que imprime los números en función de lo que devuelva ésta. Consejo: usa nombres descriptivos en las variables.
|
|
|
En línea
|
|
|
|
engel lex
|
Es indiferente que inicialice esa variable, en lugar de devolver basura devolverá un 0, que aquí también es basura. depende del compilador y los parámetros de compilación, normalmente es basura... en resto en tal caso sería int Es_Par(int numero){ if(numero%2==0) { return numero; //True } return 0; //False }
|
|
|
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.
|
|
|
A.I.
Desconectado
Mensajes: 61
|
depende del compilador y los parámetros de compilación, normalmente es basura... en resto en tal caso sería int Es_Par(int numero){ if(numero%2==0) { return numero; //True } return 0; //False }
No me has entendido, yo decía que inicializarla a 0 es exactamente igual que dejarla con basura en este caso. El resultado va a ser un número arbitrario que no te sirve de nada, es decir basura. El código que tu has escrito hace exáctamente lo mismo que el que yo he escrito, devuelve false (0) si no es par, o true (cualquier número que no sea 0) si es par. Sí no modifica la parte en la que se imprimen los números, que deberían ser sólo los pares, va a imprimir 0 en los impares en lugar de basura.
|
|
|
En línea
|
|
|
|
razyhook
Desconectado
Mensajes: 3
|
ok, con respecto a lo booleano for(c=n2; c<=n1; c++) { printf("\n %i", Es_Par(c)); } } en este codigo tiene que aver una forma, no se si remplazo el for u otro comando para que publique, mi error lo tengo es en el printf :C, bueno segun lo veo asi.. pq el publicara el valor que tenga el residuo :/ se que es molesto, pero soy novato en esto de funciones. disculpen mi ignoracia.
|
|
« Última modificación: 6 Agosto 2015, 06:46 am por razyhook »
|
En línea
|
|
|
|
engel lex
|
en tal caso, usa la función de A.I. y la parte de for(c=n2; c<=n1; c++) { } }
modificala como for(c=n2; c<=n1; c++) { if(Es_Par(c)==1){ } } }
|
|
|
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.
|
|
|
A.I.
Desconectado
Mensajes: 61
|
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con programa numeros pares e impares:P
« 1 2 »
.NET (C#, VB.NET, ASP)
|
<sylar>
|
18
|
29,462
|
17 Abril 2009, 03:41 am
por <sylar>
|
|
|
[Problema] Programa para averiguar números pares entre 2 números
Programación Visual Basic
|
Dreamaker
|
3
|
5,840
|
21 Mayo 2010, 23:45 pm
por Shell Root
|
|
|
dev c++ arreglos de numeros pares
Programación C/C++
|
nicolas2696
|
1
|
7,372
|
23 Junio 2014, 02:58 am
por engel lex
|
|
|
Contador de Digitos Numeros Pares
Programación C/C++
|
Seeven
|
3
|
8,545
|
21 Septiembre 2014, 10:26 am
por Seeven
|
|
|
Como generar numeros aleatorios pares?
Programación C/C++
|
lucas59
|
4
|
14,166
|
1 Octubre 2014, 18:12 pm
por Shout
|
|