Mi compilador no me marca tales errores y si me ejecuta el programa.
Este es el resultado:
1.Opcion 1
2.Opcion 2
3.Opcion 3
4.Salir
Ingrese una opcion entre 1 y 4: 1
29
1.Opcion 1
2.Opcion 2
3.Opcion 3
4.Salir
Ingrese una opcion entre 1 y 4: 2
2 43
1.Opcion 1
2.Opcion 2
3.Opcion 3
4.Salir
Ingrese una opcion entre 1 y 4: 3
3 43 55
1.Opcion 1
2.Opcion 2
3.Opcion 3
4.Salir
Ingrese una opcion entre 1 y 4: 4
4 43 55 86
--------------------------------
Process exited after 4.485 seconds with return value 0
Presione una tecla para continuar . . .
Ahí se ve como el primer número que devuelve, la variable a, siempre cambia según la opción menos la primera vez.
Y la demás variables no cambian, si no se mantienen con el valor asignado.
Cambie los errores que me dijeron y definí a las 4 variables como globales
#include <stdio.h>
#include <stdlib.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int a,b,c,d;
int numeroEntero(char op1[50],char op2[50],char op3[50],char op4[50], int min, int max){
int o;
printf("%s\n%s\n%s\n%s\n", op1
,op2
,op3
,op4
); do{ printf("Ingrese una opcion entre %d y %d: ", min
, max
); } while(o>max || o <min);
return o;
}
int men(int x){
switch (x){
case 1:
a=29;
break;
case 2:
b=43;
break;
case 3:
c=55;
break;
case 4:
d=86;
printf("%d %d %d %d \n",a
,b
,c
,d
); break;
}
return 0;
}
int main() {
int op;
char op1[50]="1.Opcion 1";
char op2[50]="2.Opcion 2";
char op3[50]="3.Opcion 3";
char op4[50]="4.Salir";
do{ op=numeroEntero(op1,op2,op3,op4,1,4);
men(op);
} while(op!=4);
return 0;
}
Y el código si funciona como debería. Gracias!!!
Aunque no entiendo todavía porque el compilador no me marcaba esos errores y porque el valor de las otras variables si me guardaba.
No hacer doble post