Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/03/2012, 21:49
alvarito_gool
 
Fecha de Ingreso: marzo-2012
Mensajes: 5
Antigüedad: 12 años, 8 meses
Puntos: 0
Validacion doble

Hola soy nuevo en el foro.
Estoy haciendo un programa, y tengo un pequeño problema:
El programa consiste de un vector de 11 elementos, al cual se le ingresan valores menores que 1. Entonces valido con while, que todo valor que se ingrese, debe ser menor que 1 o si no el programa vuelve a pedir ese elemento del vector LIQST. Hasta ahí funciona bien, después la siguiente validación consiste en que la sumatoria de los elementos del vector LIQST, debe ser igual a 1.
Esto funciona para distintas casos. Ejemplo:


LIQST[0]=0.2
LIQST[1]=0.2
LIQST[2]=0
LIQST[3]=0
LIQST[4]=0
LIQST[5]=0.2
LIQST[6]=0.2
LIQST[7]=0
LIQST[8]=0
LIQST[9]=0
LIQST[10]=0.2

Y el resto de convinaciones.
pero no me funciona para una en particular:

LIQST[0]=0.1
LIQST[1]=0.1
LIQST[2]=0.1
LIQST[3]=0.1
LIQST[4]=0.1
LIQST[5]=0.1
LIQST[6]=0.1
LIQST[7]=0.1
LIQST[8]=0.1
LIQST[9]=0.1
LIQST[10]=0.0

La sumatoria es igual a 1

Sin importar Donde se ponga el valor igual a 0, el programa no pasa cuando se le ingresan esos datos.
No se si sea el compilador que uso, u otra cosa. Por cierto uso Dev-C++
Aqui el programa
Cita:
#include<iostream.h>
#include<string.h>
int main()
{float GASSEP[11],GASST[11],LIQST[11],M=0,V=0,c, PMA[11],SGC7,VM[11],D,SG,API,Densidades[11]={50.032,51.044,19.98,29.34,31.62,35.11,36.42,38.9 6,39.36,41.40,53.11};
short i,j,k,PM[11]={34,44,16,30,44,58,58,72,72,86};
char comp[11][15]={"CO2","H2S","C1","C2","C3","iC4","nC4","iC5","nC 5","C6","C7+"};

cout<<"DATOS DEL STOK TANK\nComposicion liqido:\n";
do{for(i=0;i<=10;i++)
{cout<<comp[i]<<"\t";
cin>>LIQST[i];
while(LIQST[i]>1)
{cout<<comp[i]<<"\t";
cin>>LIQST[i];}
while(LIQST[i]>1);}
system ("cls");
c=0;
for(j=0;j<=10;j++)
c=c+LIQST[j];
cout<<"\n";}
while(c!=1);
system ("pause");
}
Si alguien me puede ayudar, agradeceria.