Autor
|
Tema: Problema con Arrays en C (no C++) (Leído 2,653 veces)
|
santibarquero98
Desconectado
Mensajes: 42
|
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
Mensajes: 400
|
Puedes crear un arreglo de 12 elementos para eso: int meses [12] = { DIAS_ENERO,DIAS_FEBRERO,...};
Pides los datos: //Ingresa un mes, ejemplo: 1- Enero, 2-Febrero, 3-Marzo etc int mes; //Ingrese dia del mes int dia;
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. int Dia_Del_anio = meses[0] + meses[1] + 14; //días de enero + días de febrero + 14 días de marzo
Un saludo
|
|
« Última modificación: 26 Mayo 2015, 21:23 pm por 0xFer »
|
En línea
|
int getRandomNumber(){ return 4; //chosen by fair dice roll //guaranteed to be random }
|
|
|
Stakewinner00
|
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 #include <iostream> using namespace std; int main() { //TODO //Comprobar que año y mes y día sean del rango adecuado //Tratar errores en caso de que se introduzca una letra unsigned int ano; cout << "Year: "; cin >> ano; unsigned int mes; cout << "Mes: "; cin >> mes; unsigned int dia; cout << "Dia: "; cin >> dia; unsigned int n = 0; if(!(ano%4) || !(ano%100 && (ano%400))) //bisiesto { if(mes > 2) //Si ya pasamos febrero { n += 1; } } switch(mes-1) { case 11: n += 30; case 10: n += 31; case 9: n += 30; case 8: n += 31; case 7: n += 31; case 6: n += 30; case 5: n += 31; case 4: n += 30; case 3: n += 31; case 2: n += 28; case 1: n += 31; } n += dia; cout << "Hoy estamos en el día del anyo numero" << n << endl; }
|
|
« Última modificación: 26 Mayo 2015, 21:43 pm por Stakewinner00 »
|
En línea
|
|
|
|
Peregring-lk
Desconectado
Mensajes: 50
|
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): #include <iostream> int main() { unsigned mes, dia; std::cin >> mes >> dia; unsigned dias[] = { 31, 30, 28, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; dias[mes - 1] = dia; unsigned diaanno = 0; while (mes --> 0) diaanno += dias[mes]; std::cout << diaanno << std::endl; return 1; }
|
|
« Última modificación: 26 Mayo 2015, 23:41 pm por Peregring-lk »
|
En línea
|
|
|
|
Stakewinner00
|
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
Mensajes: 50
|
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
|
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
Mensajes: 50
|
Jaja. Hecho.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema con arrays en C#
.NET (C#, VB.NET, ASP)
|
Edu
|
4
|
4,531
|
23 Noviembre 2010, 16:08 pm
por Edu
|
|
|
[C++] Problema con Arrays..
« 1 2 »
Programación C/C++
|
Wazzp
|
10
|
6,321
|
16 Enero 2011, 20:33 pm
por Wazzp
|
|
|
[C] Problema con Arrays.
Programación C/C++
|
edr89
|
6
|
3,626
|
27 Mayo 2013, 20:49 pm
por leosansan
|
|
|
Problema con Arrays
Java
|
alp
|
0
|
1,352
|
4 Mayo 2014, 02:02 am
por alp
|
|
|
Problema dificil de arrays
Java
|
4dr14n31t0r
|
0
|
1,445
|
20 Noviembre 2015, 14:43 pm
por 4dr14n31t0r
|
|