elrincondelc.com
Inicio :: Foros
Usuario: Clave: Regístrate
Salir


como termino este programa basico de c++ esta infinito

 
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Principiantes C/C++
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
clara



Registrado: 18 Mar 2012
Mensajes: 2

MensajePublicado: 18/03/2012 12:08 pm Responder citando
Título: como termino este programa basico de c++ esta infinito

esta infinito ayuda para corregirlo gracias
En una universidad se desea obtener alguna estadística de sus estudiantes. Por cada estudiante se tiene la siguiente información: Código. Edad. Sexo (1. Masculino, 2. Femenino).
Carrera (1. Ing. Industrial, 2. Ing. Eléctrica, 3. Ing. Mecánica, 4. Ing. Electrónica, 5. Ing. de sistemas, 19. Tecnología en sistemas).
Elabore un programa que calcule e imprima: Número de estudiantes que hay en cada carrera. Promedio de edad de los estudiantes. Porcentaje de hombres. Porcentaje de mujeres que estudian ingeniería industrial.
#include <conio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
int main(){
int n;
int edad,sexo,carrera,conth=0,contm=0,cont1=0,cont2=0,cont3=0,cont4=0,cont5=0,cont6=0,acum=0;
char cod[8];
float porch;
cout<<"digite n: ";
cin>>n;
int c=1;
while(c<=n){
cout<<"digite codigo: ";
cin>>cod;
cout<<"digite edad: ";
cin>>edad;
cout<<"Sexo(1.masculino,2.femenino): ";
cin>>sexo;
if(sexo=1){
conth=conth+1;

}else{
contm=contm+1;

}
cout<<"carrera(1.ing industrial,2.ing electrica,3.ing mecanica,4.ing electronica,5.ing de sistemas,6.tecnologia en sistemas): ";
cin>>carrera;
if(carrera=1){
cont1=cont1+1;

}else if(carrera=2){
cont2=cont2+1;

}
else if (carrera=3){
cont3=cont3+1;

}
else if (carrera=4){
cont4=cont4+1;

}
else if(carrera=5){
cont5=cont5+1;

}
else if(carrera=6){
cont6=cont6+1;

}
acum=(acum+edad)/n;
porch=(conth*100)/n;
}

cout <<"cantidad de estudiantes en ing industrial: " << cont1<<std::endl;
cout <<"cantidad de estudiantes en ing electrica: " << cont2<<std::endl;
cout <<"cantidad de estudiantes en ing mecanica: " << cont3<<std::endl;
cout <<"cantidad de estudiantes en ing electronica: " << cont4<<std::endl;
cout <<"cantidad de estudiantes en ing de sistemas: " << cont5<<std::endl;
cout <<"cantidad de estudiantes en tecnologia de sistemas: " << cont6<<std::endl;
cout <<"el porcentaje de hombre es de: " << porch<<std::endl;
system ("pause");
return 0;
}
Volver arriba
Ver perfil del usuario Enviar mensaje privado
dehm



Registrado: 29 Abr 2011
Mensajes: 138

MensajePublicado: 19/03/2012 1:48 am Responder citando
Título:

Hola Clara:

El problema lo tienes aquí:
Código:
cin>>n;
int c=1;
while(c<=n){ .......


Entras un valor de n, y si no es menor que 1, el bucle se sigue repitiendo, hasta que no le vuelvas a dar otro valor a n. Pero dentro del bucle no vuelves a pedirlo, por lo que nunca se dará la condición necesaria para que el bucle acabe.

Obviamente, si de primeras introduces un valor de n menor que 1, el programa acabará sin entrar en el bucle.

En definitiva, necesitas darle un valor a n dentro del bucle, para que ese n (que supongo que es el centinela que has puesto) sea menor que 1.

Por otro lado, tienes algunos fallos dentro del programa.
Confundes el operador de asignación = con el de comparación ==, es decir:

Código:
if(sexo=1){ ....
lo que estarías haciendo es asignar a sexo el valor 1.
Lo correcto sería:
Código:
if(sexo==1){....
Ahora estás evaluando si sexo vale 1.

Mas cosas....te sobran librerías que no usas, y en concreto conio.h, aunque también stdlib.h

Y por último, acum y porch no trabajan bien. Tendrás que revisar la forma de averiguar la media y demás.

Pues nada, ánimo y a revisar tu código Wink
_________________
Aprendiendo
Volver arriba
Ver perfil del usuario Enviar mensaje privado
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Índice del Foro elrincondelc.com -> Principiantes C/C++
Página 1 de 1 Todas las horas están en GMT - 8 Horas

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

(c) ElRincondelC.com, 1999-2007

Un proyecto de UrlanHeat.com