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

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [DUDA] Matrices
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [DUDA] Matrices  (Leído 3,837 veces)
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
[DUDA] Matrices
« en: 13 Marzo 2014, 11:11 am »

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í:
Código
  1. char frases[4][15] = {
  2. "Primera frase",
  3. "Segunda frase",
  4. "Hola mundo",
  5. "Y para acabar"
  6. };

¿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:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main() {
  5. int dia;
  6.  
  7. printf("¿Que numero de la semana quieres? \n");
  8. scanf("%d",&dia);
  9.  
  10. switch(dia) {
  11. case 1 :
  12. printf("lunes \n");
  13. break;
  14. case 2 :
  15. printf("martes \n");
  16. break;
  17. case 3 :
  18. printf("miércoles \n");
  19. break;
  20. case 4 :
  21. printf("jueves \n");
  22. break;
  23. case 5 :
  24. printf("viernes \n");
  25. break;
  26. case 6 :
  27. printf("sábado \n");
  28. break;
  29. case 7 :
  30. printf("domingo \n");
  31. break;
  32. default :
  33. printf("No existe \n");
  34. }
  35. system("PAUSE");
  36. return 0;
  37. }

Espero que me podáis echar un cable.

Un saludo :D


« Última modificación: 13 Marzo 2014, 11:24 am por kayron8 » En línea

¡Salu2 a to2!
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: [DUDA] Matrices
« Respuesta #1 en: 13 Marzo 2014, 11:26 am »

Código
  1. char frases[4][15] = {
  2. “Primera frase”,
  3. “Segunda frase”,
  4. “Hola mundo”,
  5. “Y para acabar”
  6. };

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:

Código
  1. scanf("%d",&dia);
  2. printf(frase[dia]);

O si te resulta más intuitivo:
Código
  1. scanf("%d",&dia);
  2. printf("%s",frase[dia]);


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
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: [DUDA] Matrices
« Respuesta #2 en: 13 Marzo 2014, 11:27 am »

Usando tu primer planteamiento tienes el problema hecho:

Código
  1. char dias_semana[7][10] = {
  2. "Lunes",
  3. "Martes",
  4. "Miercoles",
  5. "Jueves",
  6. "Viernes",
  7. "Sabado",
  8. "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:

Código
  1. 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 Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: [DUDA] Matrices
« Respuesta #3 en: 13 Marzo 2014, 12:14 pm »

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 :D  
En línea

¡Salu2 a to2!
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: [DUDA] Matrices
« Respuesta #4 en: 13 Marzo 2014, 12:18 pm »

Puedes dejar vacío el primer espacio de la matriz

Código
  1. char dias_semana[][10] {
  2.  "", // Vacio
  3.  "Lunes",
  4. ...

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 Desconectado

Mensajes: 1.211



Ver Perfil
Re: [DUDA] Matrices
« Respuesta #5 en: 13 Marzo 2014, 12:19 pm »

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

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

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
kayron8

Desconectado Desconectado

Mensajes: 28


¡Tú mismo con tu mecanismo!


Ver Perfil WWW
Re: [DUDA] Matrices
« Respuesta #6 en: 13 Marzo 2014, 12:23 pm »

Nuevamente, muchas gracias eferion.

Un saludo :D
En línea

¡Salu2 a to2!
Gh057


Desconectado Desconectado

Mensajes: 1.190



Ver Perfil
Re: [DUDA] Matrices
« Respuesta #7 en: 13 Marzo 2014, 12:42 pm »

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:

Código
  1. enum DiasSemanas
  2. {
  3. Lunes = 1,
  4. Marte,
  5. Miercoles,
  6. Jueves,
  7. Viernes,
  8. Sabado,
  9.        Domingo
  10. };
  11.  
  12.  

mas info -> http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Estructuras_y_Uniones#Enumeraciones

pd: 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 Desconectado

Mensajes: 1.248


Ver Perfil
Re: [DUDA] Matrices
« Respuesta #8 en: 13 Marzo 2014, 12:48 pm »

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:

Código
  1. enum DiasSemanas
  2. {
  3. Lunes = 1,
  4. Marte,
  5. Miercoles,
  6. Jueves,
  7. Viernes,
  8. Sabado,
  9.        Domingo
  10. };
  11.  
  12.  

mas info -> http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Estructuras_y_Uniones#Enumeraciones

pd: 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 Desconectado

Mensajes: 1.190



Ver Perfil
Re: [DUDA] Matrices
« Respuesta #9 en: 13 Marzo 2014, 12:52 pm »

jajaj si eferion por eso puse a título informativo  ;D saludos!
En línea

4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
duda matrices dinámicas multidimencionales
Programación Visual Basic
:matux: 1 1,910 Último mensaje 20 Agosto 2007, 14:03 pm
por :matux:
Duda sobre matrices en C
Programación C/C++
ildarion 7 4,899 Último mensaje 25 Septiembre 2010, 20:29 pm
por satu
duda matrices c++
Programación C/C++
indict 4 2,353 Último mensaje 18 Abril 2013, 18:02 pm
por indict
duda con programa de matrices!!!!
Programación C/C++
EdgarKrieger 4 2,652 Último mensaje 10 Diciembre 2013, 17:26 pm
por EdgarKrieger
duda con ejercicio de matrices
Programación C/C++
andoporto 1 2,191 Último mensaje 6 Febrero 2015, 23:00 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines