Hola, buenas a todos, tengo una pequeña duda sobre el siguiente ejercicio, les dejo el enunciado en negrita.
Defina el tipo Matriz como un array de 6x7 números enteros, y diseñe un subprograma para crear un calendario de un mes genérico en una matriz que se devolverá como parámetro de salida.
El subprograma se denominará calendario. El primer parámetro (m), de salida, es de tipo Matriz. El segundo parámetro (ndias), de entrada, es de tipo int y representa el número total de días del mes del calendario (28, 29, 30 o 31). El tercer parámetro (pds), de entrada, es de tipo int y representa el índice del día de la semana donde comienza el primer día del mes (donde 0 corresponde a Lunes, 1 a Martes, y así sucesivamente hasta 6 que representa al Domingo).
El código que he implementado es el siguiente:
Cuando introduzco dias = 30 y pds = 2 (por ejemplo), el resultado que obtengo es:
0 0 1 2 3 4 6
6 7 8 9 10 11 13
13 14 15 16 17 18 20
20 21 22 23 24 25 27
27 28 29 30 0 0 0
0 0 0 0 0 0 0
me como una serie de números y no sé exactamente donde está el error, por lo que si pudiesen ayudarme, me sería de gran ayuda.
Muchas gracias!
Mod: No escribir titulos en mayusculas.
Defina el tipo Matriz como un array de 6x7 números enteros, y diseñe un subprograma para crear un calendario de un mes genérico en una matriz que se devolverá como parámetro de salida.
El subprograma se denominará calendario. El primer parámetro (m), de salida, es de tipo Matriz. El segundo parámetro (ndias), de entrada, es de tipo int y representa el número total de días del mes del calendario (28, 29, 30 o 31). El tercer parámetro (pds), de entrada, es de tipo int y representa el índice del día de la semana donde comienza el primer día del mes (donde 0 corresponde a Lunes, 1 a Martes, y así sucesivamente hasta 6 que representa al Domingo).
El código que he implementado es el siguiente:
Código (cpp) [Seleccionar]
void calendario(Tipo_Matriz &m, const int ndias,const int pds){
//Iniciar calendario me pone todos los valores de la matriz a 0
iniciar_calendario(m);
int dia = 1;
int j;
for(int i = 0; i < 6; i++){
if(i == 0){
j = pds;
}else{
j = 0;
}
while(dia <= ndias && (j >= 0 && j < 7)){
m[i][j] = dia;
dia++;
j++;
}
}
//mostrar calendario
cout << endl;
for(int i = 0; i < 6; i++){
for(int j = 0; j < 7; j++){
cout << m[i][j] << " ";
}
cout << endl;
}
}
Cuando introduzco dias = 30 y pds = 2 (por ejemplo), el resultado que obtengo es:
0 0 1 2 3 4 6
6 7 8 9 10 11 13
13 14 15 16 17 18 20
20 21 22 23 24 25 27
27 28 29 30 0 0 0
0 0 0 0 0 0 0
me como una serie de números y no sé exactamente donde está el error, por lo que si pudiesen ayudarme, me sería de gran ayuda.
Muchas gracias!
Mod: No escribir titulos en mayusculas.