El código para una pregunta de programación (hay que hacer cola para ver a un médico) debe responderse en lenguaje C. Cuanto más básico y fácil de entender, mejor.
struct BR_ //Estructura del paciente
{
int id; //ID del paciente
int lv; nivel;
};
int main()
{
int n, i, j, yisheng, binglv, brnum = 0;
BR_ b2y[3][100] = {}; //Almacenar los pacientes correspondientes a cada médico;
int bingnum[3] = {}; el número de pacientes correspondientes a cada médico;
char order[5];
//Aquí puedes guardar todas las cadenas de entrada y resolverlas una por una pero Tu código original; es ingresar y procesar uno por uno;
//Entonces también ingreso y proceso uno por uno;
//Pero el significado de la pregunta es: después de completar la entrada , salida en secuencia;
//Por lo tanto, solo puede almacenar las cosas que se van a generar en una matriz (la matriz a continuación espera a que se complete la entrada y luego envíelas en secuencia
char print_[300] [8] = {}; // Se utiliza para almacenar la última cadena impresa; cada salida debe procesarse;
int str_num = 0; ;
scanf("d",amp;n);
for(j = 0; j lt; n; j)
{
scanf ("s", orden);
if(strcmp(order, "IN") == 0 ) // Comparación de cadenas, si la entrada es IN,
{ p>
brnum = 1;
scanf("d",amp;yisheng);
scanf("d",amp;binglv);
BR_ temp;
temp.id = brnum;
temp.lv = binglv;
b2y[ yisheng ][ bingnum[yisheng ] ] = temp ;
bingnum[yisheng] ;
//Ordenar; Ponga los de mayor clasificación al frente; preste atención al uso de un método de clasificación estable, como el siguiente tipo de selección; ;
int pos = 0;
mientras(pos != n - 1)
{
for(i = pos 1 ; p>{
BR_ temp1 = b2y[yisheng][pos];
b2y[yisheng][pos] = b2y[yisheng][i];
b2y[yisheng][ i] = temp1;
}
}
pos;
}
}
else if( strcmp(order, "OUT") == 0) //
{
scanf("d", amp; yisheng );
if(bingnum[yishen
g] lt; = 0) //Si el paciente actual de este médico es 0, salida vacía;
strcpy(print_[str_num], "EMPTY");
else / /No 0; la salida ocupa el primer lugar (es decir, el paciente con el nivel más alto);
{
char temp;
itoa(b2y[yisheng] ][0] .id, print_[str_num], 10);
//El primer paciente ha sido procesado, por lo que los elementos en la parte posterior de la matriz avanzan en secuencia;
for(i = 0; i lt; bingnum[yisheng] - 1; i)
{
b2y[yisheng][i] = b2y[yisheng][i 1];
}
bingnum[yisheng]--;//El número de pacientes está disminuyendo;
}
}
}
p>for(i = 0; i lt; str_num; i)
printf("s\n", print_[i]) ;
devuelve 0;
}