Autor
|
Tema: [DUDA] Matrices (Leído 3,837 veces)
|
kayron8
Desconectado
Mensajes: 28
¡Tú mismo con tu mecanismo!
|
Hola buenos días, tengo un ejercicio que hacer en dos partes, una usando if/switch y otra sin ellos, es decir, usando una matriz de chars. El ejercicio dice tal que así (segunda parte): Haz un programa que muestre el nombre del día de la semana a partir de su código numérico ( 1=lunes, 2=martes....7=domingo), pero sin usar ningún if/switch! De buenas a primeras, se que habría que hacer algo tal que así: char frases[4][15] = { "Primera frase", "Segunda frase", "Hola mundo", "Y para acabar" };
¿Pero luego cómo hago para que el usuario escoja un numero y se muestre el día de la semana que corresponde? Usando un switch sería la mar de fácil: #include <stdio.h> #include <stdlib.h> int main() { int dia; printf("¿Que numero de la semana quieres? \n"); switch(dia) { case 1 : break; case 2 : break; case 3 : break; case 4 : break; case 5 : break; case 6 : break; case 7 : break; default : } return 0; }
Espero que me podáis echar un cable. Un saludo
|
|
« Última modificación: 13 Marzo 2014, 11:24 am por kayron8 »
|
En línea
|
¡Salu2 a to2!
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
char frases[4][15] = { “Primera frase”, “Segunda frase”, “Hola mundo”, “Y para acabar” };
Ibas bien, crea una matriz con todos los días de la semana. Después le pides el número y muestras el contenido de esa posición: scanf("%d",&dia); printf(frase[dia]);
O si te resulta más intuitivo: scanf("%d",&dia); printf("%s",frase[dia]);
|
|
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Usando tu primer planteamiento tienes el problema hecho: char dias_semana[7][10] = { "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado", "Domingo" };
Si tienes una matriz con los días de la semana... puedes usar el número pedido al usuario para acceder a la matriz y recuperar el nombre correspondiente: printf( "%s\n", dias_semana [ dia ] );
Lo único que tienes que tener presente es que los índices de las matrices empiezan en 0.
|
|
|
En línea
|
|
|
|
kayron8
Desconectado
Mensajes: 28
¡Tú mismo con tu mecanismo!
|
Hola amchacon y eferion,¡Muchas gracias por vuestra ayuda! Ya me funciona el programa perfectamente, visto así, es mucho más fácil resolverlo con una matriz de chars que no con un switch jajaja Una ultima cosilla, para que quede "mas lógico/normal", ¿no hay alguna forma que el 1 corresponda al lunes y no al 0 y así sucesivamente? Un saludo
|
|
|
En línea
|
¡Salu2 a to2!
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Puedes dejar vacío el primer espacio de la matriz char dias_semana[][10] { "", // Vacio "Lunes", ...
Pero vete acostumbrando a lo de los índices empezando en 0 porque te vas a hartar a verlos. Es más cómodo adaptarse.
|
|
|
En línea
|
|
|
|
amchacon
Desconectado
Mensajes: 1.211
|
Una ultima cosilla, para que quede "mas lógico/normal", ¿no hay alguna forma que el 1 corresponda al lunes y no al 0 y así sucesivamente? Al número que te de el usuario, restale 1
|
|
|
En línea
|
|
|
|
kayron8
Desconectado
Mensajes: 28
¡Tú mismo con tu mecanismo!
|
Nuevamente, muchas gracias eferion.Un saludo
|
|
|
En línea
|
¡Salu2 a to2!
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
hola kayron8 solo a título informativo, cuando tienes una serie de constantes a los cuales le asignas números enteros en especial positivos correlativos, puedes utilizar la enumeración: enum DiasSemanas { Lunes = 1, Marte, Miercoles, Jueves, Viernes, Sabado, Domingo };
mas info -> http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Estructuras_y_Uniones#Enumeracionespd: fui a la primera fuente lenguaje C de K&R, pero salía mucho mas enredado jajaa creo que aquí es más claro, y te ajusté la primera variable para que inicie en 1, como querías. saludos.
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
hola kayron8 solo a título informativo, cuando tienes una serie de constantes a los cuales le asignas números enteros en especial positivos correlativos, puedes utilizar la enumeración: enum DiasSemanas { Lunes = 1, Marte, Miercoles, Jueves, Viernes, Sabado, Domingo };
mas info -> http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Estructuras_y_Uniones#Enumeracionespd: fui a la primera fuente lenguaje C de K&R, pero salía mucho mas enredado jajaa creo que aquí es más claro, y te ajusté la primera variable para que inicie en 1, como querías. saludos. Lo que el quiere son strings... no enumerados XD
|
|
|
En línea
|
|
|
|
Gh057
Desconectado
Mensajes: 1.190
|
jajaj si eferion por eso puse a título informativo saludos!
|
|
|
En línea
|
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
duda matrices dinámicas multidimencionales
Programación Visual Basic
|
:matux:
|
1
|
1,910
|
20 Agosto 2007, 14:03 pm
por :matux:
|
|
|
Duda sobre matrices en C
Programación C/C++
|
ildarion
|
7
|
4,899
|
25 Septiembre 2010, 20:29 pm
por satu
|
|
|
duda matrices c++
Programación C/C++
|
indict
|
4
|
2,353
|
18 Abril 2013, 18:02 pm
por indict
|
|
|
duda con programa de matrices!!!!
Programación C/C++
|
EdgarKrieger
|
4
|
2,652
|
10 Diciembre 2013, 17:26 pm
por EdgarKrieger
|
|
|
duda con ejercicio de matrices
Programación C/C++
|
andoporto
|
1
|
2,191
|
6 Febrero 2015, 23:00 pm
por engel lex
|
|