Problemas de programación y programación en C
B A C C A
B A C B B
C A A C B
B C A A B
A : 7(días)
B: 7(días)
C: 6(días)
Presiona cualquier tecla para continuar
*/
#include
#include
#define N 3 //Número de personas
#define M 4 / /Número de semanas
int main() {
int ID[ N] = {0,1,2} // Número de administrador
int work; [N] [5] = {{0,1,1,1},{1,0,0,1,1},{1,1,1,1,0}};
int días[ N] = {0}; // Número de días de servicio
int list[5] // Horario de trabajo semanal
int semana,día de la semana,quién,i ,j, k,t;
for(semana = 0; semana < M; ++semana) { // Solo organiza M semanas
memset(list,0,sizeof( list)) ; // Borrar el horario de trabajo
for(weekday = 0; Weekday < 5; ++weekday) { // 5 días hábiles por semana
for(i = 0 ; i < N - 1; ++i) { // Ordenar en orden creciente de días laborables
k = i;
for(j = i + 1; j < ; N; ++j)
if(días[k] > días[j]) k = j;
if(k != i) {
t = días[k]; días[k] = días[i]; días[i] = t;
t = ID[k]; ID [i] = t; // Intercambiar números al mismo tiempo
}
}
for(who = 0; who <.N; + +who) { // Comience a programar desde la parte superior de la cola
if(work[ID[who]][weekday]) { // Mientras esta persona trabaje, programe el turno
lista[día de la semana] = ID[quién];
++días[quién];
descanso
}
}
for(weekday = 0; Weekday < 5; ++weekday) // Lista de tareas de esta semana
printf("%c ",list[weekday] + ' A');
printf("\ n");
}
for(i = 0; i < N - 1; ++i) { // Ordenar por incremento numérico
k = i;
for(j = i + 1; j < N; ++j)
if( ID[k] > ID[ j]) k = j;
if(k ! = i) {
t = días[k]; días[k] = días[i];
= ID[k]; ID[k] = ID[i]; ID[i] = t;
}
}
para(quién = 0; who < N; ++who) // recuento de días de servicio en las últimas N semanas
printf("%c :%d(days)\n",ID[who] + ' A',días[quién]);
devuelve 0;
}