Problema con ejercicio de Vectores.

Iniciado por Starscream-94, 16 Marzo 2013, 20:45 PM

0 Miembros y 1 Visitante están viendo este tema.

Starscream-94

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

//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..

$Edu$

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.

pacoperico

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.