unsafe static public void SimpleMassiveObjective(double *hospital, int rows, int columns) { bool is_exist = false; Console.WriteLine("Всего в больнице {0} палат\n", rows); for (int i = 0; i < rows; i++) { Console.WriteLine("В палате {0} находится {1} коек(и).\n", i + 1, columns); for (int j = 0; j < columns; j++) { if (hospital[i * columns + j] != 0 || hospital[i * columns + j] > 0) { counter++; Console.WriteLine("В койке {0} лежит пациент с температурой {1}", j + 1, hospital[i * columns + j]); } } } patient[] patient_list = new patient[counter]; Console.WriteLine("\nИнформация о пациентах с одинаковой температурой\n"); double *check = stackalloc double[counter]; for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { for (int y = 0; y < counter; y++) { if (check[y] == hospital[i * columns + j]) { is_exist = true; } } if (!is_exist) { for (int p = 0; p < counter; p++) { if (check[p] == 0) { check[p] = hospital[i * columns + j]; break; } } } is_exist = false; } } for (int l = 0; l < patient_list.Length; l++) { fixed(patient *pointerPatient = &patient_list[l]) { pointerPatient->ward = -1; pointerPatient->cot = -1; } } for (int p = 0; p < counter; p++) { for (int i = 0; i < rows; i++) { for (int j = 0; j < columns; j++) { if (check[p] == hospital[i * columns + j]) { SolvingTaskMassive.EnterIntoStruct(i, j, hospital[i * columns + j], ref patient_list); } } } } int counter_for_out = 0; for (int i = 0; i < counter; i++) { for (int j = 0; j < patient_list.Length; j++) { if (check[i] == patient_list[j].temp) { counter_for_out++; } } if (counter_for_out >= 2) { Console.WriteLine("Пациенты с одинаковой температурой равной {0}\n", check[i]); for (int y = 0; y < patient_list.Length; y++) { if (check[i] == patient_list[y].temp) { Console.WriteLine("Пациент в палате {0} на койке {1}", patient_list[y].ward + 1, patient_list[y].cot + 1); } } } counter_for_out = 0; } }
static public void SimpleMassiveObjective(double[,] hospital) { bool is_exist = false; Console.WriteLine("Всего в больнице {0} палат\n", hospital.Length); for (int i = 0; i < hospital.GetLength(0); i++) { Console.WriteLine("В палате {0} находится {1} коек(и).\n", i + 1, hospital.GetLength(0)); for (int j = 0; j < hospital.GetLength(1); j++) { if (hospital[i, j] != 0 || hospital[i, j] > 0) { counter++; Console.WriteLine("В койке {0} лежит пациент с температурой {1}", j + 1, hospital[i, j]); } } } patient[] patient_list = new patient[counter]; Console.WriteLine("\nИнформация о пациентах с одинаковой температурой\n"); double[] check = new double[counter]; for (int i = 0; i < hospital.GetLength(0); i++) { for (int j = 0; j < hospital.GetLength(1); j++) { for (int y = 0; y < check.Length; y++) { if (check[y] == hospital[i, j]) { is_exist = true; } } if (!is_exist) { for (int p = 0; p < check.Length; p++) { if (check[p] == 0) { check[p] = hospital[i, j]; break; } } } is_exist = false; } } for (int l = 0; l < patient_list.Length; l++) { patient_list[l].ward = -1; patient_list[l].cot = -1; } for (int p = 0; p < check.Length; p++) { for (int i = 0; i < hospital.GetLength(0); i++) { for (int j = 0; j < hospital.GetLength(1); j++) { if (check[p] == hospital[i, j]) { SolvingTaskMassive.EnterIntoStruct(i, j, hospital[i, j], ref patient_list); } } } } int counter_for_out = 0; for (int i = 0; i < check.Length; i++) { for (int j = 0; j < patient_list.Length; j++) { if (check[i] == patient_list[j].temp) { counter_for_out++; } } if (counter_for_out >= 2) { Console.WriteLine("Пациенты с одинаковой температурой равной {0}\n", check[i]); for (int y = 0; y < patient_list.Length; y++) { if (check[i] == patient_list[y].temp) { Console.WriteLine("Пациент в палате {0} на койке {1}", patient_list[y].ward + 1, patient_list[y].cot + 1); } } } counter_for_out = 0; } }