Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Starscream-94 en 16 Marzo 2013, 20:45 pm



Título: Problema con ejercicio de Vectores.
Publicado por: Starscream-94 en 16 Marzo 2013, 20:45 pm
Buenas...

Estoy empezando a programar en C,

Estoy tomando los datos... Pero a la hora de compilar e introducirlos el me repite me repite y no pasa de ahí... aca el codigo

Código:
//programa

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
#define MAX 3

#pragma hdrstop
#pragma argsused
//--------------------------------------------------------------------------
void main()
{
 int num[MAX],puestos[MAX],acuma=0,acumb=0,acumc=0,mayor=-1,i,auxnum,ban=0;
 float area[MAX],rel[MAX];
 char edif[MAX],auxedif;

//CARGA DE VECTORES
for (i=0; i<3; i++)
{
 clrscr();
 printf("\n\nINGRESE EL EDIFICIO EN QUE SE ENCUENTRA EL AULA:");
 fflush(stdin);
 edif[i] = toupper(getchar());
 printf("NUMERO DE AULA:");
 scanf("%d",&num[i]);
 printf("\n\nINDIQUE LA CAPACIDAD DEL AULA MEDIDA EN PUESTOS:");
 scanf("%d",&puestos[i]);
 printf("AREA DEL AULA");
 scanf("%f",&area[i]);
}

//calculo capacidad total
for(i=0;i<MAX;i++)
{
 if(edif[i]=='A')
 acuma+=puestos[i];
 else
 if(edif[i]=='B')
 acumb+=puestos[i];
 else
 if(edif[i]=='C')
 acumc+=puestos[i];
}

 printf ("LA CAPACIDAD DEL EDIFICIO A: %d, DEL B %d Y DEL C %d",acuma,acumb,acumc);

 //Creacion del vector con relacion metros cuadrados/alumno

 printf ("\n EDIFICIO \t\t AULA \t\t RELACION \t\t ALUM");
 for(i=0;i<MAX;i++)
 {
 rel[i]=area[i]/puestos[i];
 printf ("\n %c \t\t %d \t\t %.2f",edif[i],num[i],rel[i]);
 }

 //identificando el aula o aulas con mayor capacidad.
 for(i=0;i<MAX;i++)
 {
  if(puestos[i]>mayor)
   mayor=puestos[i];
  }

printf("\n\n LAS SIGUIENTES AULAS QUE POSEEN LA MAYOR CAPACIDAD SON:");
printf("\n\n AULA \t\t\t EDIFICIO");
for(i=0;i<MAX;i++)
if(puestos[i]==mayor)
printf("\n\n %d \t\t\t %c",num[i],edif[i]);

//consulta de capacidad.

do
{
 printf("INDIQUE EN QUE EDIFICIO SE ENCUENTRA EL AULA A CONSULTAR");
 scanf("%c",&auxedif);

 if(auxedif!='A'&& auxedif!='B'&& auxedif!='C');
 printf ("EL TIPO DE EDIFICIO SE ENCUENTRA ERRADO, INDIQUELO NUEVAMENTE");
}
while(auxedif!='A'&& auxedif!='B'&& auxedif!='C');

printf("INDIQUE EL NUMERO DE AULA A CONSULTAR");
scanf("%d",&auxnum);

i=0;
do
{
 if (edif[i]==auxedif && num[i] ==auxnum)
{
 printf("\n\n LA CAPACIDAD DEL AULA %d DEL EDIFICIO %c ES: %d",auxnum,auxedif,puestos[i]);

 ban=0;
}
else
i++;
}while (ban && i<MAX);

if(ban)
printf ("\n\n ESE NUMERO DE AULA NO EXISTE EN EL EDIFICIO %c",auxedif);

getch();

}

Gracias..


Título: Re: Problema con ejercicio de Vectores.
Publicado por: $Edu$ en 16 Marzo 2013, 21:44 pm
Te has olvidado y has declarado la variable "ban" con valor 0 al principio del programa, mientras seguramente tendrias que haberlo hecho con valor 1. Por lo menos eso pude entender.


Título: Re: Problema con ejercicio de Vectores.
Publicado por: pacoperico en 17 Marzo 2013, 11:36 am
Por lo que comentas sobre el comportamiento de tu programa eso es que seguramente te has metido en algun bucle infinito. Un ciclo infinito se produce cuando en un ciclo while o for la condicion siempre es verdadera, es decir que tenga un valor distinto de cero, y por lo tanto el ciclo nunca pararia de ejecutarse.