[ Foro de C++ ]

Problema con la Restricción de Edad hecha con If-Else y Struct

27-Nov-2018 00:17
Invitado (Rodrigo Dom?nguez)
1 Respuestas

Como le hago para que acepte el caso de ser Mayor de Edad?

Lo ejecuto y aun si le pongo 128 años, me lo toma como menor de edad.


#include<conio.h> //Para los "getch" y "getche"
#include<iostream>	//Para las funciones de "cout", "cin", y "endl"
#include<stdio.h>
#include<stdlib.h>

using namespace std;

const int PRECIO = 40; // Los Precios, determinados con Constantes, se les puede aplicar un descuento con una función fuera del main

struct usuario{	//Los Datos del Usuario
char nombre[100];
int edad;
};

float registro();	
int main()
{
float resu;
char res;
int opcion;
usuario regis;
resu = registro();

cout<<"Desea Comprar un Boleto? (N)o / (S)i: ";
res = getche();
while(res == 'N' || res == 'n'){
cout<<"\n\nOk, que tenga un buen dia.";
return 0;
}

while(res == 'S' || res == 's'){
cout<<"\n\nFunciones Disponibles\n\n"<<endl;
cout<<"1. Venom"<<endl;
cout<<"2. Animales Fantasticos, Los Crimenes de Grindelwald"<<endl;
cout<<"3. Halloween"<<endl;
cout<<"4. Los Vengadores: Infinity War"<<endl;
cout<<"5. Wifi Ralph"<<endl;
cout<<"0. Salir"<<endl;

cout<<"\nQue quiere ver?: ";
cin>>opcion;

if(opcion == 1);	//Es decir, Si escogen ver Venom. Si son menores de Edad, no podrán entrar.
{cout<<"\nUsted quiere ver la de Venom..."<<endl;
if(regis.edad<18){
cout<<"Lo siento pero no puedes verla, esta bien grotesca para alguien como usted"<<endl;
}
else { //Aquí el problema
cout<<"Perfecto, son $40"<<endl;
}
return 0;
}

usuario regis;
float res; 
res = registro();
getch();
}

return 0;
}

float registro(){	//Donde pide los datos del usuario para llenar el "struct"
usuario regis;
printf("Pon tu nombre: ");
gets(regis.nombre);
printf("Pon tu edad: ");
scanf("%d",®is.edad);
return 0;
}




Ah, y si pueden decirme como aplicar un descuento como estudiante en forma de Función fuera del Int, y Conectar la Constante (40) al diálogo del Precio, se los agradecería aún más.


04-Dec-2018 20:27
Nacho Cabanes (+84)

En "float registro(){", la variable "regis" es local, por lo que no se modifica ningún dato externo. Tendrás que devolver el valor del registro, en vez de 0, o usar una variable global, según cómo espere tu profesor que lo hagas.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)