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

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema con Arrays en C (no C++)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Arrays en C (no C++)  (Leído 2,284 veces)
santibarquero98

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Problema con Arrays en C (no C++)
« en: 26 Mayo 2015, 17:01 pm »

Ya he escrito varias veces acerca de problemas de programación y es posible que algunos ya conozcáis mi caso xD. Estoy aprendiendo a programar en C y he llegado a los Arrays o matrices y tengo un ejercicio en el que tengo que hacer lo siguiente:

- Tengo que almacenar los días que tienen los 12 meses del año (no bisiesto) y pedir al usuario que elija uno. Después tiene que elegir un día de ese mes y a partir de esos dos datos, tengo que sacar el día de todo el año y mostrárselo, por ejemplo el 4 de Enero pues sería el cuarto día del año.

Lo que yo he intentado hacer es una matriz con 12 elementos llamada meses pero creo que es innecesario ya que solamente se guardan 3 números (30,28 y 31) y me estoy haciendo un lío grande en la cabeza también ya que después pide lo de los días...

¿Cómo se haría ese ejercicio? ¿Y algún consejo para poder solucionar este tipo de problemas?


En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: Problema con Arrays en C (no C++)
« Respuesta #1 en: 26 Mayo 2015, 21:21 pm »

Puedes crear un arreglo de 12 elementos para eso:

Código
  1. int meses [12] = { DIAS_ENERO,DIAS_FEBRERO,...};
  2.  

Pides los datos:
Código
  1. //Ingresa un mes, ejemplo: 1- Enero, 2-Febrero, 3-Marzo etc
  2.  int mes;
  3.  
  4.  //Ingrese dia del mes
  5.  int dia;
  6.  

Para calcular los dias, pongamos como ejemplo que mes = 3 y dia = 14, entonces en el arreglo sumas los primeros 2 indices que corresponden a los meses de enero y febrero y luego le sumas los 14 días de marzo.

Código
  1. int Dia_Del_anio = meses[0] + meses[1] + 14; //días de enero + días de  febrero + 14 días de marzo
  2.  

Un saludo
  


« Última modificación: 26 Mayo 2015, 21:23 pm por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Problema con Arrays en C (no C++)
« Respuesta #2 en: 26 Mayo 2015, 21:41 pm »

Si entendi bien, no se porque usar arrays o matrices....

Dejo lo que hice por si es esto y sirve aunque esta en C++ sintácticamente se parece

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.  //TODO
  8.  //Comprobar que año y mes y día sean del rango adecuado
  9.  //Tratar errores en caso de que se introduzca una letra
  10.  
  11.  unsigned int ano;
  12.  cout << "Year: ";
  13.  cin >> ano;
  14.  
  15.  unsigned int mes;
  16.  cout << "Mes: ";
  17.  cin >> mes;
  18.  
  19.  unsigned int dia;
  20.  cout << "Dia: ";
  21.  cin >> dia;
  22.  
  23.  unsigned int n = 0;
  24.  if(!(ano%4) || !(ano%100 && (ano%400))) //bisiesto
  25.  {
  26.    if(mes > 2)  //Si ya pasamos febrero
  27.    {
  28.      n += 1;
  29.    }
  30.  }
  31.  
  32.  switch(mes-1)
  33.  {
  34.    case 11: n += 30;
  35.    case 10: n += 31;
  36.    case 9:  n += 30;
  37.    case 8:  n += 31;
  38.    case 7:  n += 31;
  39.    case 6:  n += 30;
  40.    case 5:  n += 31;
  41.    case 4:  n += 30;
  42.    case 3:  n += 31;
  43.    case 2:  n += 28;
  44.    case 1:  n += 31;
  45.  }
  46.  
  47.  n += dia;
  48.  
  49.  cout << "Hoy estamos en el día del anyo numero" << n << endl;
  50.  
  51.  
  52. }
  53.  
« Última modificación: 26 Mayo 2015, 21:43 pm por Stakewinner00 » En línea

Peregring-lk

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Problema con Arrays en C (no C++)
« Respuesta #3 en: 26 Mayo 2015, 23:05 pm »

Aunque solamente se guarden 3 números diferentes, no hay ningún "patrón" que puedas sacar, así que no te queda otra que un vector.

O!! la solución de Stakewinner00, que hace lo que pides perfectamente, aunque la descripción de tu ejercicio dice que debes almacenarlos (te está diciendo claramente que uses un vector), pero bueno.

Otra solución (no la he probado, pero debería funcionar):

Código
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.  unsigned mes, dia; std::cin >> mes >> dia;
  6.  
  7.  unsigned dias[] = {
  8.        31, 30, 28, 30, 31, 30,
  9.        31, 31, 30, 31, 30, 31
  10.  };
  11.  
  12.  dias[mes - 1] = dia;
  13.  
  14.  unsigned diaanno = 0;
  15.  
  16.  while (mes --> 0)
  17.      diaanno += dias[mes];
  18.  
  19.  std::cout << diaanno << std::endl;
  20.  
  21.  return 1;
  22. }

« Última modificación: 26 Mayo 2015, 23:41 pm por Peregring-lk » En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Problema con Arrays en C (no C++)
« Respuesta #4 en: 26 Mayo 2015, 23:12 pm »

A esta última solución creo que le faltaría sumarle los días de este mes. Por lo que veo solo suma los días de los meses anteriores.
Creo que esta última solución es más acertada :(
En línea

Peregring-lk

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Problema con Arrays en C (no C++)
« Respuesta #5 en: 26 Mayo 2015, 23:19 pm »

Fíjate en la línea 12.

Además, recuerda que si el usuario quiere "enero", introducirá un 1, y no un 0. Así que en la primera vuelta del lector ya se suman los dias del mes introducido (línea 12).
« Última modificación: 26 Mayo 2015, 23:21 pm por Peregring-lk » En línea

Stakewinner00


Desconectado Desconectado

Mensajes: 1.426



Ver Perfil WWW
Re: Problema con Arrays en C (no C++)
« Respuesta #6 en: 26 Mayo 2015, 23:24 pm »

Ups si, no me fije. Lo que si que faltaría sería std:: en el cin para poder compilarlo pero bueno...
En línea

Peregring-lk

Desconectado Desconectado

Mensajes: 50


Ver Perfil
Re: Problema con Arrays en C (no C++)
« Respuesta #7 en: 26 Mayo 2015, 23:41 pm »

Jaja. Hecho.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con arrays en C#
.NET (C#, VB.NET, ASP)
Edu 4 4,293 Último mensaje 23 Noviembre 2010, 16:08 pm
por Edu
[C++] Problema con Arrays.. « 1 2 »
Programación C/C++
Wazzp 10 5,742 Último mensaje 16 Enero 2011, 20:33 pm
por Wazzp
[C] Problema con Arrays.
Programación C/C++
edr89 6 3,285 Último mensaje 27 Mayo 2013, 20:49 pm
por leosansan
Problema con Arrays
Java
alp 0 1,240 Último mensaje 4 Mayo 2014, 02:02 am
por alp
Problema dificil de arrays
Java
4dr14n31t0r 0 1,329 Último mensaje 20 Noviembre 2015, 14:43 pm
por 4dr14n31t0r
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines