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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Consulta] Programa en C, Geany..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Consulta] Programa en C, Geany..  (Leído 2,891 veces)
neron991

Desconectado Desconectado

Mensajes: 17


Ver Perfil
[Consulta] Programa en C, Geany..
« en: 20 Mayo 2015, 06:10 am »

Hola queria saber porque geany me marca este error al construir el codigo:

Código:
Collect2: Error: Id returned 1 exit status

estoy haciendo un programa en c de varias opciones y las estoy probando por ahora llevo la primera que la tengo lista pero no me deja construir para probar el codigo es el siguiente:

Código
  1. #include <stdio.h>
  2. int par(int numero);
  3. float prom (float n1, float n2, float n3);
  4. int triple (int num);
  5. int negative (int num);
  6.  
  7. int  main()
  8. {
  9.  
  10. int opcion;
  11. printf("\n\t\t\t\tBienvenido al Programa");
  12. printf ("\n\n\t\tMenú: ");
  13. printf ("\n\n1. Saber si numeor es par o impar");
  14. printf ("\n\n2. calcular promedio de 3 notas");
  15. printf ("\n\n3. Elever numero al cubo");
  16. printf ("\n\n4. Saber si un numero es negativo o positivo");
  17. printf ("\n\n5. Mensaje");
  18. printf ("\n\n6. Salir del programa");
  19. printf("\n\nSeleccione una Opcion: ");
  20. scanf("%d",&opcion);
  21.  
  22. switch (opcion)
  23. {
  24. case 1:
  25. {
  26. int numero, resultado;
  27. printf ("introduzca un numero\n");
  28. scanf ("%d", &numero);
  29. resultado=par (numero);
  30. if (resultado==1)
  31. printf ("es par.\n");
  32. else
  33. printf ("Es impar.\n");
  34. return (0);
  35.  
  36. }
  37. int par (int numero)
  38. {
  39. if ((numero%2)==0)
  40. return (1);
  41. else
  42. return (0);
  43. }
  44.  
  45. }
  46. return (0);
  47.  
  48. }
Espero me puedan ayudar gracias..


Mod: Modificado con etiquetas GeSHi para hacer más legible el código


« Última modificación: 20 Mayo 2015, 06:19 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #1 en: 20 Mayo 2015, 06:22 am »

tienes un error... declarar una fución dentro de otra... estas declarando par dentro de main...

a demás lo declaras dentro del switch.... y al case le colocas corchetes, no tiene break... no está declarado "triple", ni tampoco "negative"...


hay varias cosas a corregir... corrigiendo lo basico

Código
  1. include <stdio.h>
  2. int par(int numero);
  3.  
  4. int  main(){
  5. int opcion;
  6. printf("\n\t\t\t\tBienvenido al Programa");
  7. printf ("\n\n\t\tMenú: ");
  8. printf ("\n\n1. Saber si numeor es par o impar");
  9. printf ("\n\n2. calcular promedio de 3 notas");
  10. printf ("\n\n3. Elever numero al cubo");
  11. printf ("\n\n4. Saber si un numero es negativo o positivo");
  12. printf ("\n\n5. Mensaje");
  13. printf ("\n\n6. Salir del programa");
  14. printf("\n\nSeleccione una Opcion: ");
  15. scanf("%d",&opcion);
  16.  
  17. switch (opcion){
  18. case 1:
  19. int numero, resultado;
  20. printf ("introduzca un numero\n");
  21. scanf ("%d", &numero);
  22. resultado=par (numero);
  23. if (resultado==1){
  24. printf ("es par.\n");
  25. }else{
  26. printf ("Es impar.\n");
  27. }
  28. break;
  29. }
  30. return 0;
  31. }
  32.  
  33. int par (int numero){
  34. if (numero%2==0){
  35. return 1;
  36. }else{
  37. return 0;
  38. }
  39. }


« Última modificación: 20 Mayo 2015, 06:29 am por engel lex » 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.
neron991

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #2 en: 20 Mayo 2015, 06:40 am »

tienes un error... declarar una fución dentro de otra... estas declarando par dentro de main...

a demás lo declaras dentro del switch.... y al case le colocas corchetes, no tiene break... no está declarado "triple", ni tampoco "negative"...


hay varias cosas a corregir... corrigiendo lo basico

Código
  1. include <stdio.h>
  2. int par(int numero);
  3.  
  4. int  main(){
  5. int opcion;
  6. printf("\n\t\t\t\tBienvenido al Programa");
  7. printf ("\n\n\t\tMenú: ");
  8. printf ("\n\n1. Saber si numeor es par o impar");
  9. printf ("\n\n2. calcular promedio de 3 notas");
  10. printf ("\n\n3. Elever numero al cubo");
  11. printf ("\n\n4. Saber si un numero es negativo o positivo");
  12. printf ("\n\n5. Mensaje");
  13. printf ("\n\n6. Salir del programa");
  14. printf("\n\nSeleccione una Opcion: ");
  15. scanf("%d",&opcion);
  16.  
  17. switch (opcion){
  18. case 1:
  19. int numero, resultado;
  20. printf ("introduzca un numero\n");
  21. scanf ("%d", &numero);
  22. resultado=par (numero);
  23. if (resultado==1){
  24. printf ("es par.\n");
  25. }else{
  26. printf ("Es impar.\n");
  27. }
  28. break;
  29. }
  30. return 0;
  31. }
  32.  
  33. int par (int numero){
  34. if (numero%2==0){
  35. return 1;
  36. }else{
  37. return 0;
  38. }
  39. }

Hola gracias por responder, no lo de triple y negative viene despues, no he hecho la funcion de esos, queria probar primero lo del par, ya corregi, de ahi bien pero ahora tengo el error en int numero, resultado; del case 1, dice :
Código:
Error: A label can only be part of a statement and a declaration is not a statement
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #3 en: 20 Mayo 2015, 07:09 am »

sorry... lo que está en la linea 19 pasalo a la 16... debes evitar usar el switch para declarar las variables... el es solo un selector :P

para hacer el scope correcto (y declarar las variables como haces), dejas como tenias los corchetes en el case... (algo poco común, pero valido) ;)
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.
neron991

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #4 en: 21 Mayo 2015, 00:18 am »

Listo gracias por esa xD ya hice todo el programa y funciona bien pero tengo un problema en la siguente linea de codigo me tira un warning en un corchete que esta debajo de float prom (float n1,float n2, float n3) en las funciones linea 110 ve:

Código
  1. #include <stdio.h>
  2. int par (int numero);
  3. float prom (float n1, float n2, float n3);
  4. int triple (int num);
  5. int negative (int num);
  6. void saludo (void);
  7.  
  8. int  main()
  9. {
  10.  
  11. int opcion;
  12. printf("\n\t\t\t\tBienvenido al Programa");
  13. printf ("\n\n\t\tMenú: ");
  14. printf ("\n\n1. Saber si un numero es par o impar");
  15. printf ("\n\n2. Calcular promedio de 3 notas");
  16. printf ("\n\n3. Elever numero al cubo");
  17. printf ("\n\n4. Saber si un numero es negativo o positivo");
  18. printf ("\n\n5. Saludo");
  19. printf ("\n\n6. Salir del programa");
  20. printf("\n\nSeleccione una Opcion: ");
  21. scanf("%d",&opcion);
  22.  
  23. switch (opcion)
  24. {
  25. int numero, resultado;
  26.  
  27. case 1:
  28.  
  29. printf ("\nintroduzca un numero\n");
  30. scanf ("%d", &numero);
  31. resultado=par (numero);
  32. if (resultado==1){
  33. printf ("\nEs par.\n");
  34. }else{
  35. printf ("\nEs impar.\n");
  36. }
  37. break;
  38. {
  39. float n1, n2, n3;
  40. case 2:
  41.  
  42. printf ("\nIntroduzca primer numero:");
  43. scanf ("%f", &n1);
  44. printf ("\nIntroduzca segundo numero:");
  45. scanf ("%f", &n2);
  46. printf ("\nIntroduzca tercer numero:");
  47. scanf ("%f", &n3);
  48.  
  49. prom (n1,n2,n3);
  50. }
  51. break;
  52. {
  53. int numero, total;
  54. case 3:
  55. printf ("\nIntroduzca numero: ");
  56. scanf ("%d", &numero);
  57. total= triple (numero);
  58. printf ("\nEL triple de %d es: %d",numero,total);
  59. }
  60. break;
  61. {
  62. int n,resultado;
  63. case 4:
  64. printf ("\nIntroduzca un numero: ");
  65. scanf ("%d", &n);
  66. resultado=negative (n);
  67. if (resultado==1)
  68. printf ("\nEs un numero negativo.\n");
  69. else
  70. printf ("\nEs un Numero Positivo.\n");
  71. }
  72. break;
  73. {
  74. case 5:
  75. saludo ();
  76. }
  77.  
  78. break;
  79. {
  80. case 6:
  81.  
  82. printf ("\n\n\t\tFin del programa Presione ENTER para salir");
  83. }
  84.  
  85. break;
  86. {
  87. default:
  88. printf ("\n\t\tOPCIÓN NO VALIDA DENTRO DE LOS PARÁMETROS");
  89.  
  90. }
  91.  
  92. }
  93. return 0;
  94. }
  95.  
  96.  
  97. int par (int numero)
  98. {
  99. if ((numero%2)==0){
  100. return (1);
  101. }else{
  102. return (0);
  103. }
  104. }
  105. float prom (float n1,float n2, float n3)
  106. {
  107. float resultado;
  108. resultado= (n1+n2+n3)/3;
  109. printf ("\nEL promedio es: %f\n",resultado);
  110. }
  111.  
  112. int triple (int num)
  113. {
  114. int n;
  115. n=3*num;
  116. return (n);
  117. }
  118.  
  119. int negative (int numero)
  120. {
  121. int res;
  122. if (numero<0)
  123. res=1;
  124. else
  125. res=0;
  126. return (res);
  127. }
  128.  
  129. void saludo ()
  130. {
  131. printf ("\n\n\t\t\tDebo Estudiar Mas =)");
  132.  
  133.  
  134.  
  135. getchar ();
  136. }

dice:

Código:
warning: control reaches end of non-void function
« Última modificación: 21 Mayo 2015, 00:33 am por engel lex » En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #5 en: 21 Mayo 2015, 00:35 am »

por qué declaras las funciones dentro del main? :s mas funciones van fuera del main

para que le pones paréntesis a los resultados de los return? no es necesario...
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.
neron991

Desconectado Desconectado

Mensajes: 17


Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #6 en: 21 Mayo 2015, 01:55 am »

es que lo veo mas ordenado de esa forma asi nos dijo la profesora T_T jaja xD lo de los parentesis bueno se los acabo de quitar!
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [Consulta] Programa en C, Geany..
« Respuesta #7 en: 1 Junio 2015, 18:21 pm »

tengo un problema en la siguente linea de codigo me tira un warning en un corchete que esta debajo de float prom (float n1,float n2, float n3) en las funciones linea 110 ve:

[...]

Código
  1. #include <stdio.h>
  2. int par (int numero);
  3. float prom (float n1, float n2, float n3);
  4.  
  5. /* ... */
  6.  
  7. prom (n1,n2,n3);
  8.  
  9. /* ... */
  10.  
  11. float prom (float n1,float n2, float n3)
  12. {
  13.   float resultado;
  14.   resultado= (n1+n2+n3)/3;
  15.   printf ("\nEL promedio es: %f\n",resultado);
  16. }

dice:

Código:
warning: control reaches end of non-void function
Ese mensaje se genera porque declaras la función "prom" como una cuyo tipo de retorno es float pero dentro de ella no devuelves valor alguno.

Para solucionarlo ya que la utilizas solo por su efecto (calculo e impresión del promedio) cambia su tipo de retorno a void:
Código
  1. #include <stdio.h>
  2. int par (int numero);
  3. void prom (float n1, float n2, float n3);
  4.  
  5. /* ... */
  6.  
  7. prom (n1,n2,n3);
  8.  
  9. /* ... */
  10.  
  11. void prom (float n1,float n2, float n3)
  12. {
  13.   float resultado;
  14.   resultado= (n1+n2+n3)/3;
  15.   printf ("\nEL promedio es: %f\n",resultado);
  16. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
WinBGIm en Geany
Programación C/C++
jonaSoft 0 4,156 Último mensaje 17 Marzo 2011, 20:21 pm
por jonaSoft
Problema con comillas en Geany
Programación C/C++
akibara 1 4,978 Último mensaje 24 Mayo 2011, 18:46 pm
por x64core
El IDE Geany no me compila
Programación General
Blp 0 4,748 Último mensaje 25 Marzo 2012, 13:24 pm
por Blp
Configurar Geany para Python
Scripting
cristiantorres 2 7,674 Último mensaje 26 Abril 2012, 18:23 pm
por cristiantorres
Ayuda con Geany! errores de ejecucion
Programación C/C++
Pirata LOL 4 6,755 Último mensaje 28 Diciembre 2016, 17:45 pm
por do-while
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines