Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ALONSOQ en 15 Julio 2012, 23:29 pm



Título: funciones
Publicado por: ALONSOQ en 15 Julio 2012, 23:29 pm
Hola,

Alguien me puede decier que hago mal en esta función?
Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int suma(int n);
  5. int suma(int n)
  6. {
  7. int s;
  8.  
  9. s=s+n;
  10. n=s=0;
  11. return s;
  12. }
  13.  
  14. int main()
  15. {
  16. int numero, contador;
  17. int sum;
  18.  
  19. for(contador=0;contador<5;contador++)
  20. {
  21. printf("dime un numero:");
  22. scanf("%d",&numero);
  23. sum=suma(numero);
  24. }
  25.  
  26. printf("%d",suma);
  27.  
  28.  
  29. }

gracias


Título: Re: funciones
Publicado por: DickGumshoe en 15 Julio 2012, 23:39 pm
Primero, en main() debes inicializar suma a 0 (sino coge un valor cualquiera). Además, para llamar a la función y almacenar la suma en "sum", debes poner sum += suma(n), ya que tienes que sumar el resultado (lo mejor sería que le pasaras la variable "sum" como parámetro). Y en el printf() imprimes "suma" (que es la función), debes imprimir "sum".

Dentro de la función debes inicializar s también a 0, y no tienes que poner n=s=0, porque sino el resultado será 0...

Por tanto:

Código
  1. #include<stdio.h>
  2. #include<conio.h>
  3.  
  4. int suma(int n);
  5. int suma(int n)
  6. {
  7. int s=0;
  8.  
  9. s=s+n;
  10.  
  11. return s;
  12. }
  13.  
  14. int main()
  15. {
  16. int numero, contador;
  17. int sum=0;
  18.  
  19. for(contador=0;contador<5;contador++)
  20. {
  21. printf("dime un numero:");
  22. scanf("%d",&numero);
  23. sum += suma(numero);
  24. }
  25.  
  26. printf("%d",sum);
  27.  
  28.  
  29. }
  30.  

Por cierto, te recomiendo no incluir conio.h, ya que no es portable, y sustituir getch() por getchar().

Saludos!



Título: Re: funciones
Publicado por: ALONSOQ en 16 Julio 2012, 00:00 am
Muchas gracias, !!!cristalino!!!!


Título: Re: funciones
Publicado por: DickGumshoe en 16 Julio 2012, 01:25 am
De nada, para eso estamos  ;)


Título: Re: funciones
Publicado por: dato000 en 16 Julio 2012, 05:10 am
De nada, para eso estamos  ;)

no existira una medalla al merito para personajes como este maese??? estas al nivel de randomize, electro-hacker y yo (jjaja naaa que va, yo soy de los novatos ajajaj).

dejando a un lado lo lamesuelos, cuanto llevas dandole a C/C++?? siempre he tenido la duda si C/C++ es suficientemente bueno... una duda que los expertos de aqui pueden responderme, pues casi no veo ofertas de empleo para C/C++


Título: Re: funciones
Publicado por: DickGumshoe en 16 Julio 2012, 12:47 pm
Citar
no existira una medalla al merito para personajes como este maese??? estas al nivel de randomize, electro-hacker y yo (jjaja naaa que va, yo soy de los novatos ajajaj).

dejando a un lado lo lamesuelos, cuanto llevas dandole a C/C++?? siempre he tenido la duda si C/C++ es suficientemente bueno... una duda que los expertos de aqui pueden responderme, pues casi no veo ofertas de empleo para C/C++

Empecé sobre octubre - noviembre del año pasado, pero yo creo que tampoco sé mucho, sigo siendo novato xD.

Yo tengo 14 años, así que todavía no es tiempo para mirar las ofertas de empleo de C/C++, pero supongo que buscarán más de Java o PHP... Aunque tengo entendido que muchos videojuegos están desarrollados en C++.

Saludos!

P.D.: Nos estamos desviando un poco del tema xD.


Título: Re: funciones
Publicado por: solkan05 en 16 Julio 2012, 13:48 pm
La función suma que tienes ahí realmente lo que hace es devolverte el número que introduces en el por lo tanto o no utilizo la función suma o utilizo get y set en la función suma que debe hacer lo mismo que haces en  tu función.


Título: Re: funciones
Publicado por: DickGumshoe en 16 Julio 2012, 13:52 pm
La función suma que tienes ahí realmente lo que hace es devolverte el número que introduces en el por lo tanto o no utilizo la función suma o utilizo get y set en la función suma que debe hacer lo mismo que haces en  tu función.

Por eso le he dicho que yo pasaría la variable "suma" como parámetro. Yo tampoco le veía sentido a la función, pero bueno...

Saludos!


Título: Re: funciones
Publicado por: dato000 en 16 Julio 2012, 14:03 pm
Empecé sobre octubre - noviembre del año pasado, pero yo creo que tampoco sé mucho, sigo siendo novato xD.

Yo tengo 14 años, así que todavía no es tiempo para mirar las ofertas de empleo de C/C++, pero supongo que buscarán más de Java o PHP... Aunque tengo entendido que muchos videojuegos están desarrollados en C++.

Saludos!

P.D.: Nos estamos desviando un poco del tema xD.

un genio, un genio, en donde estudio veo gente de 30 pa arriba que estudia sistemas y no sabe ni php...yo veo por aparte C porque el curso y las clases que dieron fueron una lastima (apenas llegamos a funciones!!!) en fin, sigue con el empeño, yo a mis 24 sigo con esto, aunque es una lastima que no haya nada de ofertas para C++ XDD


Título: Re: funciones
Publicado por: ALONSOQ en 16 Julio 2012, 15:27 pm
Por eso le he dicho que yo pasaría la variable "suma" como parámetro. Yo tampoco le veía sentido a la función, pero bueno...

Saludos!

Perdona mi ignorancia pero como se pasaría por parametro

gracias


Título: Re: funciones
Publicado por: DickGumshoe en 16 Julio 2012, 15:33 pm
Sería así:

Código
  1. #include<stdio.h>
  2.  
  3. int suma(int n, int s)
  4. {
  5. s += n; //O lo que es lo mismo, s = s + n;
  6. return s; //devolvemos la suma ya hecha.
  7. }
  8.  
  9. int main()
  10. {
  11. int numero, contador;
  12. int sum=0;
  13.  
  14. for(contador=0;contador<5;contador++)
  15. {
  16. printf("dime un numero:");
  17. scanf("%d",&numero);
  18. sum = suma(numero, sum); //Ya tenemos la suma de estos números hecha en la función suma(), así que ya no hace falta sumarlo
  19. }
  20.  
  21. printf("%d",sum);
  22.  
  23.  
  24. }
  25.  

Saludos!


Título: Re: funciones
Publicado por: ALONSOQ en 16 Julio 2012, 16:58 pm
Muchas gracias