• Miércoles 15 de Abril de 2026, 05:58

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - alvaritoCABJ

Páginas: [1]
1
C/C++ / Problema con doble validacion
« en: Sábado 31 de Marzo de 2012, 04:02 »
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 solo sucede con esa combinacion, tambien pasa con otras mas  :ayuda:
No se si sea el compilador que uso, u otra cosa. Por cierto uso Dev-C++
Aqui el programa

Código: [Seleccionar]
#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.
Cualquier comentario o ayuda es util, la verdad no se que pasa.
gracias

Páginas: [1]