[C con Clase] Problemas con arrays

Giselle giselleskyers en gmail.com
Dom Mayo 4 04:22:19 CEST 2014


Muchísiamas gracias por la ayuda y la explicación. En efecto el problema
radicaba en que no había hecho el segundo bucle for para recorrer el array
y mostrar los resultados. Ahora funciona perfectamente.

Sin embargo me ha quedado una duda sobre el uso del break. yo escribí algo
así en el bucle for, quisiera por favor que me explicaran si es un buen uso
o no del break y cuando es una buena opción usarlo.

   for(contador=0; contador<20; contador++)
{
cout<<"Ingrese un salario: "<<endl;
 cin>>salario_ingresado;
 if(salario_ingresado<0)
 {
break;
}
salarios[contador] = salario_ingresado;
 }

Agradezco mucho su ayuda, pues si bien estoy estudiando a través de un
libro de texto, lo cierto es que la experiencia siempre vale más que todo.

Espero que sigamos todos en contacto.

Saludos

*"Hemos aprendido a volar como los pájaros, a nadar como los peces; pero no
hemos aprendido el sencillo arte de vivir como hermanos."*


El 2 de mayo de 2014, 2:28, Davidson, Steven <srd4121 en njit.edu> escribió:

> Hola Giselle,
>
> 2014-05-02 0:22 GMT-04:00 Giselle <giselleskyers en gmail.com>:
>
> Hola a todos, mi nombre es Gisselle y estoy suscrita a su curso y lista de
>> correos de C++.
>>
>>
> Ante todo, bienvenida a nuestra lista de correo-e y a este "mundillo" de
> la programación en C++.
>
> Solo para hacer mas facil la comprension del programa les dejo en pasos lo
>> que deseo hacer:
>>
>> 1- definir un array
>> 2-solicitarle al usuario que ingrese un numero
>>  3-a traves de un ciclo for, creo el indice de mi array
>> 4-en un if anidado dentro del for condicione el cierre del ciclo al
>> ingresarse un valor negativo
>> 5-muestro los valores de mi array usando un cout. (esto no funciona!!!!)
>>
>> Alguien podria ayudarme por favor, estoy segura de que tengo algun error
>> de logica, pero no lo veo.
>>
>>
> Como no nos das el código fuente, no creo que podamos dar una ayuda
> puntual. Sin embargo, por lo que nos dices, sospecho que el error es que
> has intentado hacer algo así:
>
> int aNumeros[1000];
>
> for( ... )
> {
>   ...
> }
>
> cout << aNumeros << endl;
>
> Si has hecho esto, entonces no te funcionará como esperas. 'cout <<'
> interpreta arrays y punteros como una dirección de memoria, que en tu caso
> puede explicar el enorme entero que aparece en pantalla. La excepción de
> este comportamiento es cuando se trata de un array de 'char' que 'cout <<'
> lo interpreta como una cadena de caracteres, mostrando cada carácter.
>
> La solución es que debes mostrar cada elemento del array con 'cout <<'.
> Esto implica que necesitas otro bucle para recorrer el array de principio
> al final actual. Esto sugiere que requieres guardar previamente la cantidad
> actual de lo enteros guardados en susodicho array.
>
>
> Quisiera añadir que no es buena práctica forzar una salida abrupta de un
> bucle. Según nos comentas, parece que estás usando 'break' para salir
> forzosamente del bucle. En su lugar, intenta permitir que el bucle termine
> según sus condiciones descritas, que para eso mismo existen. Por ejemplo,
> podríamos usar un booleano,
>
> bool bTerminar = false;
> int num;
>
> for( int i=0; i<1000 && !bTerminar; i++ )
> {
>   cin << num;
>
>   if( num != -1 )
>     aNumeros[i] = num;
>   else
>     bTerminar = true;
> }
>
> Una alternativa es colocar la condición de salida directamente en la
> expresión condicional del bucle; al fin y al cabo, esta otra condición
> dicta terminar el bucle. Por ejemplo,
>
> // Caso particular: i=0
> cin << num;
>
> // Caso general: 0 < i < 1000
> for( int i=1; i<1000 && num != -1; i++ )
> {
>   aNumeros[i-1] = num;
>   cin << num;
> }
>
>
> Espero que todo esto te sea de ayuda.
>
> Steven
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140503/c27c3401/attachment.html>


Más información sobre la lista de distribución Cconclase