Buenas, tengo el ejercico 31 que entregar en c++ y me encuentro con un problema. primero que estoy usando vectores y nose si se puede (anteriormente me dijo el profesor que no), pero para este caso no veo forma de resolver un punto sin crear un vector, e aqui la ayuda que ando buscando, sin contar que nose porque hay una parte que no me funciona como espero y no se porque.
ejercicio 31:
El gobierno de la Ciudad de Buenos Aires realiza una encuesta en casas de familia. De cada familia conoce: domicilio, tipo de vivienda ('C':casa, 'D':departamento), y cantidad de integrantes.
De cada integrante de la familia se conoce: nombre y apellido, edad, sexo ('F', 'M'), nivel de estudios alcanzados ('N': no posee, 'P': primario, 'S': secundario, 'T': terciario, 'U': universitario), y un indicador ('I': incompleto, 'C': completo) que se refiere al ítem anterior.
Los datos finalizan cuando la cantidad de integrantes sea igual a cero.
Se pide emitir un listado con los resultados:
a) los datos de los encuestados que hayan completado los estudios primarios
//Este es el que no veo como hacer sin usar un vector para almacenar todos los datos de las personas con estudios primarios, porque no pide el numero de gente, sino sus datos (nombre, apellido, domicilio, tipo de vivienda)
b) el porcentaje de analfabetismo en la ciudad (se considera analfabetos a los mayores de 10 años que no posean estudios)
c) el domicilio de la familia con mayor cantidad de integrantes que viven en departamento
d) edad promedio de cada familia y de la ciudad
e) cantidad de encuestados en cada tipo de nivel de estudios alcanzados incompletos.
f) porcentaje de encuestados de sexo femenino y masculino.
aca va el codigo
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <string.h>
#include <stdio.h>
using namespace std;
int main() {
int f = 9999;
int familias[f];
int n = 1;
int integrantes[n]; //integrantes
int C = 0;//casa
int D = 0;//departamento
char nombre[20];
char apellido[30];
int edad = 0;
int sFem = 0;//Sexo Femenino
int sMas = 0;//Sexo Masculinto
int estN = 0;//estudios no posee
int estP = 0;//estudios primario
int estS = 0;//estudios secundario
int estT = 0;//estudios terciario
int estU = 0;//estudios universitario
char estCompletos[10];
char estincompletos[10];
int selector = 0;
int i;
int j;
while(n!=0){//while mientras los integrantes sean distinto que 0
for(i =0; i<f; i++){//recorre el array familias
cout<<"Ingrese el/los Apellido/s de la famillia"<<"\n"; //Pregunta el apellido del a familia
gets(apellido);//Almacena el apellido para luego informar la familia "apellido"
cout<<"Cuantos integrantes tiene la familia "<<apellido<<" ?"<<"\n";//pregunta la cantidad de ingresantes de la familia "apellido"
cin>>n;//asigna los integrantes para cortar o no el while y recorrer el array
for(j=0; j<n; j++){//llena los datos de cada integrante
cout<<"Nombre del integrnate?"<<"\n";
gets(nombre);
cout<<"Sexo del integrante? (ingrese el indice)"<<"\n";//pregunta el sexo
cout<<"1. Masculino"<<"\n";
cout<<"2. Femenino"<<"\n";
cin>>selector;//contador de masculno y femenenino
if(selector = 1){
sMas++;//contador de masculinos
}else if (selector = 2){
sFem++;//contador de femeninos
}else if (selector!=1 || selector!=2){//valida indice invalido
cout<<"Ingrese un indice valido"<<"\n";
}
}
}
}
}
El problema que tengo con el codigo, es que cuando pido ingresar el apellido y usa el gets, almacena correctamente el apellido ingresado en "apellido"
luego pregunta cuantos integrantes hay, luego de dar una entrada distinta de 0, sino el programa es terminado por el while,
me deberia de preguntar el nombre del primer integrante y capturar el nombre con el gets en la variable "nombre"
pero sucede que dice
"Nombre del integrante?" -y sin esperar a ingresar el nombre tira el texto de seleccion de sexo-
Porque? no deberia esperar ingresar algo, capturarlo con el gets y luego pedir el sexo como hizo con el apellido?,
al codigo le falta casi todo pero ya con ese minimo problema no puedo seguir, ademas del tema con los vectores.
gracias!