elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO] Programa Sencillo: Representación de un Array
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Programa Sencillo: Representación de un Array  (Leído 2,914 veces)
LaLakers94

Desconectado Desconectado

Mensajes: 9


Ver Perfil
[SOLUCIONADO] Programa Sencillo: Representación de un Array
« en: 2 Mayo 2014, 18:23 pm »

Hola, estoy empezando a programar con C y me he atascado en un problema aparentemente sencillo.

Consiste mostrar los elementos de un vector por pantalla entre corchetes “[...]” y separados por coma (,) mediante la función 'escribirVector' que recibe un vector constante y un valor entero n (este representa el número de elementos reales del vector).

La verdad es que no tengo ni idea. Mi código conciste en esto:

Código
  1. void escribeVector(const Vector v, int n){
  2. int i;
  3. for(i=0; i<n; i++){
  4. printf("[%lf]\n", v[i]);
  5. }
  6. }

Que claro está mal, me devuelve n veces la cadena [Elemento].

¿alguna sugerencia para conseguir el resultado que busco ([e[0],e[1], ... ])?


« Última modificación: 11 Mayo 2014, 11:33 am por LaLakers94 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [AYUDA] Programa Sencillo: Representación de un Array
« Respuesta #1 en: 2 Mayo 2014, 19:19 pm »

Casi lo tienes, solo hay que realizar cambios menores a la función. En pseudocodigo:

1) Imprimir '['
2) (Bucle) Imprimir los primeros N-1 elementos (N == numero de elementos del array) en la forma "i, ".
3) Imprimir el ultimo elemento (si existe) seguido del carácter ']'.

No es difícil, lo resuelves en unos minutos.

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [AYUDA] Programa Sencillo: Representación de un Array
« Respuesta #2 en: 2 Mayo 2014, 20:00 pm »


¿Algo como esto?:

Código
  1. [[1],[2],[3],[4],[5]]

Por si te sirve de ayuda:

Código
  1. printf("[");
  2.  for(i=0; i<5; i++)
  3.      printf("[%i],", v[i]);
  4.  printf("\b]\n");

El "\b" es para retroceder y que se coma la última coma, vamos que no termine en coma.

¡¡¡¡ Saluditos! ..... !!!!



En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [AYUDA] Programa Sencillo: Representación de un Array
« Respuesta #3 en: 2 Mayo 2014, 20:04 pm »

El "\b" es para retroceder y que se coma la última coma, vamos que no termine en coma.
Otra forma es imprimir el primero y despues ir imprimiendo coma + numero:

Código
  1. printf("[[%i] ",v[0]);
  2.  
  3. for(i=1; i<5; i++)
  4.     printf(",[%i]", v[i]);
  5.  
  6. printf("]\n");

A mí personalmente lo de retroceder no me gusta.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [AYUDA] Programa Sencillo: Representación de un Array
« Respuesta #4 en: 2 Mayo 2014, 20:42 pm »

Otra forma es imprimir el primero y después ir imprimiendo coma + numero:
....................
A mí personalmente lo de retroceder no me gusta.


Es justo lo contrario a lo que proponía rir3760, imprimir desde el primero hasta el penúltimo, y el último aparte.

Mi propuesta es la más coherente, no imprime ninguno por separado. :laugh:



¡¡¡¡ Saluditos! ..... !!!!





« Última modificación: 2 Mayo 2014, 21:48 pm por Eternal Idol » En línea

LaLakers94

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: [AYUDA] Programa Sencillo: Representación de un Array
« Respuesta #5 en: 5 Mayo 2014, 11:48 am »

Hola, gracias a todos.
Finalmente con lo que me dijo rir3760 hice este codigo:

Código
  1. void escribeVector(const Vector v, int n){ //n = tamaño real del vector v
  2. int i;
  3. printf("[");
  4. for(i=0; i<n; i++){
  5. if(i<n-1){
  6. printf("%lf, ", v[i]);
  7. }else{
  8. printf("%lf]\n", v[i]);
  9. }
  10. }
  11. }

Muy similar a lo que me comentáis.

Por cierto, ¿el funcionamiento de '\b' consiste en suprrimir el último caracter? Por ejemplo con la cadena s = "Hola me gustan los Lakers.\n'' podría eliminar el salto de línea concatenándole '\b' a la cadena?
« Última modificación: 5 Mayo 2014, 11:55 am por LaLakers94 » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [AYUDA] Programa Sencillo: Representación de un Array
« Respuesta #6 en: 5 Mayo 2014, 17:49 pm »

Por eficiencia deberías sacar la comprobación fuera del bucle, de esta forma:
Código
  1. for (i = 0; i < n - 1; i++)
  2.   printf("%lf, ", v[i]);
  3. printf("%lf]\n", v[i]);
En el raro caso de que el numero de elementos pueda ser menor o igual a cero debes verificar eso antes de imprimir el ultimo elemento

¿el funcionamiento de '\b' consiste en suprrimir el último caracter? Por ejemplo con la cadena s = "Hola me gustan los Lakers.\n'' podría eliminar el salto de línea concatenándole '\b' a la cadena?
No. El efecto de '\b' solo aplica si envías la cadena a la salida estándar, no funcionara si la cadena la almacenas en otro array o la envías a un archivo.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]Array de objetos
.NET (C#, VB.NET, ASP)
diego_lp 4 4,032 Último mensaje 19 Febrero 2010, 16:33 pm
por elmaro
Dudas con array[solucionado]
Programación C/C++
Isótopo 1 1,937 Último mensaje 23 Julio 2010, 23:37 pm
por .:BlackCoder:.
[Solucionado] Manejo de Array's
Programación Visual Basic
agus0 3 2,077 Último mensaje 14 Enero 2011, 15:36 pm
por agus0
Representación de los valores de un array en función de su indice
Programación C/C++
cabre89 3 1,920 Último mensaje 29 Octubre 2012, 22:56 pm
por flony
(Solucionado) Un programa sencillo usando las librerías GLFW y GLEW crashea
Programación C/C++
Seyro97 1 1,669 Último mensaje 14 Mayo 2015, 20:04 pm
por Seyro97
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines