0

Necesito en el caso 2 que si la edad es mayor a 18 y menor a 120 me retorne un true y si no pasa eso un false y en caso 4 necesito pedir una cantidad de edades que quiero ingresar luego necesito ingresar cuáles son esas edades es decir los valores y al final decir cuáles de esas edades son mayor de edad todo eso mediante un arreglo.

int main(int argc, char *argv[]) {

  int decada;
  int anio;
  int edad;
  bool verd = true;
  bool fals = false;

  // string nombre_completo = "Ingrese su nombre y apellido: \n";
  string nombre, apellido;

  cout << "Ingrese una opcion: ";
  int opcion = 0;
  cin >> opcion;

  switch (opcion) {
  case 1:
    cout << "Usted selecciono la opcion 1 \n";

    printf("Ingrese el año de nacimiento: \n");
    scanf("%i", &anio);

    decada = anio % 100;
    printf("%i \n", decada);
    break;

  case 2:
    cout << "Usted selecciono la opcion 2 \n";

    printf("Ingrese su edad: \n");
    scanf("%i", edad);

    if (edad >= 18 && edad < 121) {

      return true;
    }

    break;

  case 3:
    cout << "Usted eligio la tercera opcion: \n";

    printf("Ingrese su nombre completo: \n");
    cin >> nombre;
    cin >> apellido;
    cout << nombre << " " << apellido << endl;

    break;

  case 4:
    cout << "Usted eligio la cuarta opcion: \n";

    cout << "Ingrese numero de edades:" << endl;
    // cin>>cantidad;
    cout << "Ingrese las edades a cargar:" << endl;
  }
}
PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82
  • Te falta el `else` para el caso 2. – Bicho Nov 22 '21 at 23:18
  • 1
    Aqui nadie te va a hacer la tarea. Te recomiendo que leas [como preguntar](https://es.stackoverflow.com/help/how-to-ask) para que tus dudas se acomoden al formato del sitio. De otra forma sera muy dificil que te respondan. – Pablochaches Nov 23 '21 at 00:56
  • 1
    Bienvenido, es importante revises [ask], saludos. – Jorgesys Nov 23 '21 at 02:40

1 Answers1

0

Necesito en el caso 2 que si la edad es mayor a 18 y menor a 120 me retorne un true

No puedes hacer eso, la función main debe devolver un entero (int) siendo 0 el valor de retorno cuando el programa se ha ejecutado correctamente y cualquier otro valor si han habido problemas durante la ejecución; si devuelves true este valor booleano se transformará en un entero diferente a cero: lo que significa que el programa no se ejecutó correctamente.

en caso 4 necesito pedir una cantidad de edades que quiero ingresar

Basta con declarar una variable y leer datos sobre ella:

int cantidad = 0;

...

switch (opcion) {
    case 4:
    std::cin >> cantidad;
...

luego necesito ingresar cuáles son esas edades

Bien, usa un std::vector:

std::vector<int> edades;
int cantidad = 0;

...

switch (opcion) {
    case 4:
    std::cin >> cantidad;
    edades.resize(cantidad);

    for (auto &edad : edades)
        std::cin >> edad;
...

al final decir cuáles de esas edades son mayor de edad

Sin problemas, usa std::copy_if de <algorithm>:

std::vector<int> mayores_de_edad;
std::copy_if(edades.begin(), edades.end(), std::back_inserter(mayores_de_edad),
    [](int v) { return v >= 18; });

std::cout << "Mayores de edad: ";
for (const auto &edad : mayores_de_edad)
    std::cout << edad;

todo eso mediante un arreglo

No uses arreglos, usa contenedores estándar.

PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82