Autor
|
Tema: [SOLUCIONADO] Programa Sencillo: Representación de un Array (Leído 3,294 veces)
|
LaLakers94
Desconectado
Mensajes: 9
|
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: void escribeVector(const Vector v, int n){ int i; for(i=0; i<n; i++){ } }
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
Mensajes: 1.639
|
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
Mensajes: 1.314
|
¿Algo como esto?: [[1],[2],[3],[4],[5]]
Por si te sirve de ayuda: printf("["); for(i=0; i<5; i++) printf("[%i],", v[i]); 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
Mensajes: 1.211
|
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: printf("[[%i] ",v[0]); for(i=1; i<5; i++) printf(",[%i]", v[i]); printf("]\n");
A mí personalmente lo de retroceder no me gusta.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
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.
¡¡¡¡ Saluditos! ..... !!!!
|
|
« Última modificación: 2 Mayo 2014, 21:48 pm por Eternal Idol »
|
En línea
|
|
|
|
LaLakers94
Desconectado
Mensajes: 9
|
Hola, gracias a todos. Finalmente con lo que me dijo rir3760 hice este codigo: void escribeVector(const Vector v, int n){ //n = tamaño real del vector v int i; for(i=0; i<n; i++){ if(i<n-1){ }else{ } } }
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
Mensajes: 1.639
|
Por eficiencia deberías sacar la comprobación fuera del bucle, de esta forma: for (i = 0; i < n - 1; 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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[SOLUCIONADO]Array de objetos
.NET (C#, VB.NET, ASP)
|
diego_lp
|
4
|
4,294
|
19 Febrero 2010, 16:33 pm
por elmaro
|
|
|
Dudas con array[solucionado]
Programación C/C++
|
Isótopo
|
1
|
2,136
|
23 Julio 2010, 23:37 pm
por .:BlackCoder:.
|
|
|
[Solucionado] Manejo de Array's
Programación Visual Basic
|
agus0
|
3
|
2,273
|
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
|
2,156
|
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,925
|
14 Mayo 2015, 20:04 pm
por Seyro97
|
|