Hola queria saber porque geany me marca este error al construir el codigo:
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:
#include <stdio.h>
int par(int numero);
float prom (float n1, float n2, float n3);
int triple (int num);
int negative (int num);
int main()
{
int opcion;
printf("\n\t\t\t\tBienvenido al Programa");
printf ("\n\n\t\tMenú: ");
printf ("\n\n1. Saber si numeor es par o impar");
printf ("\n\n2. calcular promedio de 3 notas");
printf ("\n\n3. Elever numero al cubo");
printf ("\n\n4. Saber si un numero es negativo o positivo");
printf ("\n\n5. Mensaje");
printf ("\n\n6. Salir del programa");
printf("\n\nSeleccione una Opcion: ");
scanf("%d",&opcion);
switch (opcion)
{
case 1:
{
int numero, resultado;
printf ("introduzca un numero\n");
scanf ("%d", &numero);
resultado=par (numero);
if (resultado==1)
printf ("es par.\n");
else
printf ("Es impar.\n");
return (0);
}
int par (int numero)
{
if ((numero%2)==0)
return (1);
else
return (0);
}
}
return (0);
}
Espero me puedan ayudar gracias..
Mod: Modificado con etiquetas GeSHi para hacer más legible el código
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
include <stdio.h>
int par(int numero);
int main(){
int opcion;
printf("\n\t\t\t\tBienvenido al Programa");
printf ("\n\n\t\tMenú: ");
printf ("\n\n1. Saber si numeor es par o impar");
printf ("\n\n2. calcular promedio de 3 notas");
printf ("\n\n3. Elever numero al cubo");
printf ("\n\n4. Saber si un numero es negativo o positivo");
printf ("\n\n5. Mensaje");
printf ("\n\n6. Salir del programa");
printf("\n\nSeleccione una Opcion: ");
scanf("%d",&opcion);
switch (opcion){
case 1:
int numero, resultado;
printf ("introduzca un numero\n");
scanf ("%d", &numero);
resultado=par (numero);
if (resultado==1){
printf ("es par.\n");
}else{
printf ("Es impar.\n");
}
break;
}
return 0;
}
int par (int numero){
if (numero%2==0){
return 1;
}else{
return 0;
}
}
Cita de: engel lex 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
include <stdio.h>
int par(int numero);
int main(){
int opcion;
printf("\n\t\t\t\tBienvenido al Programa");
printf ("\n\n\t\tMenú: ");
printf ("\n\n1. Saber si numeor es par o impar");
printf ("\n\n2. calcular promedio de 3 notas");
printf ("\n\n3. Elever numero al cubo");
printf ("\n\n4. Saber si un numero es negativo o positivo");
printf ("\n\n5. Mensaje");
printf ("\n\n6. Salir del programa");
printf("\n\nSeleccione una Opcion: ");
scanf("%d",&opcion);
switch (opcion){
case 1:
int numero, resultado;
printf ("introduzca un numero\n");
scanf ("%d", &numero);
resultado=par (numero);
if (resultado==1){
printf ("es par.\n");
}else{
printf ("Es impar.\n");
}
break;
}
return 0;
}
int par (int numero){
if (numero%2==0){
return 1;
}else{
return 0;
}
}
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 :
Error: A label can only be part of a statement and a declaration is not a statement
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) ;)
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:
#include <stdio.h>
int par (int numero);
float prom (float n1, float n2, float n3);
int triple (int num);
int negative (int num);
void saludo (void);
int main()
{
int opcion;
printf("\n\t\t\t\tBienvenido al Programa");
printf ("\n\n\t\tMenú: ");
printf ("\n\n1. Saber si un numero es par o impar");
printf ("\n\n2. Calcular promedio de 3 notas");
printf ("\n\n3. Elever numero al cubo");
printf ("\n\n4. Saber si un numero es negativo o positivo");
printf ("\n\n5. Saludo");
printf ("\n\n6. Salir del programa");
printf("\n\nSeleccione una Opcion: ");
scanf("%d",&opcion);
switch (opcion)
{
int numero, resultado;
case 1:
printf ("\nintroduzca un numero\n");
scanf ("%d", &numero);
resultado=par (numero);
if (resultado==1){
printf ("\nEs par.\n");
}else{
printf ("\nEs impar.\n");
}
break;
{
float n1, n2, n3;
case 2:
printf ("\nIntroduzca primer numero:");
scanf ("%f", &n1);
printf ("\nIntroduzca segundo numero:");
scanf ("%f", &n2);
printf ("\nIntroduzca tercer numero:");
scanf ("%f", &n3);
prom (n1,n2,n3);
}
break;
{
int numero, total;
case 3:
printf ("\nIntroduzca numero: ");
scanf ("%d", &numero);
total= triple (numero);
printf ("\nEL triple de %d es: %d",numero,total);
}
break;
{
int n,resultado;
case 4:
printf ("\nIntroduzca un numero: ");
scanf ("%d", &n);
resultado=negative (n);
if (resultado==1)
printf ("\nEs un numero negativo.\n");
else
printf ("\nEs un Numero Positivo.\n");
}
break;
{
case 5:
saludo ();
}
break;
{
case 6:
printf ("\n\n\t\tFin del programa Presione ENTER para salir");
}
break;
{
default:
printf ("\n\t\tOPCIÓN NO VALIDA DENTRO DE LOS PARÁMETROS");
}
}
return 0;
}
int par (int numero)
{
if ((numero%2)==0){
return (1);
}else{
return (0);
}
}
float prom (float n1,float n2, float n3)
{
float resultado;
resultado= (n1+n2+n3)/3;
printf ("\nEL promedio es: %f\n",resultado);
}
int triple (int num)
{
int n;
n=3*num;
return (n);
}
int negative (int numero)
{
int res;
if (numero<0)
res=1;
else
res=0;
return (res);
}
void saludo ()
{
printf ("\n\n\t\t\tDebo Estudiar Mas =)");
getchar ();
}
dice:
warning: control reaches end of non-void function
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...
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!
Cita de: neron991 en 21 Mayo 2015, 00:18 AMtengo 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:
[...]
#include <stdio.h>
int par (int numero);
float prom (float n1, float n2, float n3);
/* ... */
prom (n1,n2,n3);
/* ... */
float prom (float n1,float n2, float n3)
{
float resultado;
resultado= (n1+n2+n3)/3;
printf ("\nEL promedio es: %f\n",resultado);
}
dice:
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:
#include <stdio.h>
int par (int numero);
void prom (float n1, float n2, float n3);
/* ... */
prom (n1,n2,n3);
/* ... */
void prom (float n1,float n2, float n3)
{
float resultado;
resultado= (n1+n2+n3)/3;
printf ("\nEL promedio es: %f\n",resultado);
}
Un saludo