Foros del Web » Programación para mayores de 30 ;) » C/C++ »

seleccionar dia semana, mejoro el codigo

Estas en el tema de seleccionar dia semana, mejoro el codigo en el foro de C/C++ en Foros del Web. hola, la idea es que el usuario ingresa un numero del 1 al 7 y le muestra el dia de la semana en nombre, por ...
  #1 (permalink)  
Antiguo 01/09/2013, 01:06
 
Fecha de Ingreso: octubre-2011
Mensajes: 153
Antigüedad: 12 años, 5 meses
Puntos: 7
seleccionar dia semana, mejoro el codigo

hola,

la idea es que el usuario ingresa un numero del 1 al 7 y le muestra el dia de la semana en nombre, por ejemplo si ingresa 1 mostrar lunes.



como puedo mejorar este codigo??

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4.  
  5.  
  6. int main() {
  7.    
  8.     int numero = 0;
  9.     char dia1[] = "lunes";
  10.     char dia2[] = "martes";
  11.     char dia3[] = "miercoles";
  12.     char dia4[] = "jueves";
  13.     char dia5[] = "viernes";
  14.     char dia6[] = "sabado";
  15.     char dia7[] = "domingo";
  16.    
  17.    
  18.     printf ("Ingrese un numero entre 1 al 7: ");
  19.     scanf ("%d", & numero);
  20.    
  21.     if(numero >= 1 and numero <=7){
  22.                
  23.         if(numero == 1){
  24.             printf("%s\n", dia1);
  25.         }else      
  26.         if(numero == 2){
  27.             printf("%s\n", dia2);          
  28.         }else  
  29.         if(numero == 3){
  30.             printf("%s\n", dia3);          
  31.         }else  
  32.         if(numero == 4){
  33.             printf("%s\n", dia4);          
  34.         }else  
  35.         if(numero == 5){
  36.             printf("%s\n", dia5);          
  37.         }else  
  38.         if(numero == 6){
  39.             printf("%s\n", dia6);          
  40.         }else  
  41.         if(numero == 7){
  42.             printf("%s\n", dia7);          
  43.         }      
  44.    
  45.     }else{
  46.         printf ("Esta fuera de rango: ");      
  47.     }
  48.     return 0;
  49. }
__________________
Mi mail: [email protected]
  #2 (permalink)  
Antiguo 01/09/2013, 02:07
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: seleccionar dia semana, mejoro el codigo

Haciendolo más compacto y eliminando las conio.h

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main() {
  5.  
  6.     int numero = 0;
  7.  
  8.     char Dias[7][10] = {"Lunes","Martes","Miercoles","Jueves","Viernes","Sabado","Domingo"};
  9.  
  10.     printf ("Ingrese un numero entre 1 al 7: ");
  11.     scanf ("%d", & numero);
  12.  
  13.     if(numero > 7 or numero < 1)
  14.     {
  15.         printf ("Esta fuera de rango: ");
  16.     }
  17.     else
  18.     {
  19.         printf("%s \n",Dias[numero-1]);
  20.     }
  21.     return 0;
  22. }

También puedes meterlo en un while, para que el programa se repita una y otra vez.
  #3 (permalink)  
Antiguo 01/09/2013, 07:24
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: seleccionar dia semana, mejoro el codigo

Dejenme colgar la version libreria :))

Código C:
Ver original
  1. //dias.h
  2. #ifndef _DIASH
  3. #define _DIASH
  4.  
  5. typedef unsigned char size_dia;
  6.  
  7. enum DDIAS {DDL = 1, DDM, DDX, DDJ, DDV, DDS, DDD, DCTD};
  8. #ifdef DD_CA
  9.     static char *SDIAS[DCTD] = {"Dil", "Dil", "Dim", "Dix", "Dij", "Div", "Dis", "Diu"};
  10.     static char SDOOR[] = "Fora de rang";
  11. #else
  12.     static char *SDIAS[DCTD] = {"Lun", "Lun", "Mar", "Mie", "Jue", "Vie", "Sab", "Dom"};
  13.     static char SDOOR[] = "Fuera de rango";
  14. #endif
  15.  
  16.  
  17. char *dd_dia(size_dia dd) {
  18.     return (dd < DCTD)? SDIAS[dd] : SDOOR;
  19. }
  20.  
  21. #endif

Y ahora lo que nos interesa:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include "dias.h"
  3.  
  4. int main() {
  5.     size_dia numero = 0;
  6.  
  7.     printf("Ingrese un numero entre 1 al 7:  ");
  8.     scanf ("%d", &numero);
  9.     printf("%s\n", dd_dia(numero));
  10.  
  11.     return 0;
  12. }

Saludos
vosk

Última edición por vosk; 01/09/2013 a las 07:38

Etiquetas: dia, int, numero, semana, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:35.