Итак, у вас есть несколько проблем.Во-первых, ваши массивы объявлены внутри написанных вами функций, поэтому никакой другой код не сможет получить к ним доступ.Вы должны объявить свои массивы внутри функции main
, чтобы они могли передаваться в качестве параметров другим функциям.Если вы не знаете, как передать массив в качестве параметра, то остальная часть этого назначения будет для вас сложной.
В любом случае, давайте начнем так, вам не нужно писать функцию для установкидо массивов, вы можете сделать это непосредственно в main, как это
int main()
{
Student firstArray[12] = {
{ "Bob McBoberston", 0, "BMcboberts@txstate.edu" },
...
};
Student secondArray[12] = {
...
};
Student thirdArray[12] = {
...
};
...
}
Теперь, когда массивы настроены, вам нужно написать функцию для последовательного поиска (бинарный поиск более сложный, поэтомупока что)
Подумайте о том, какие параметры нужны функции и какое возвращает значение, которое она имеет.Это всегда первый шаг при написании функции, но с этим также сталкиваются многие новички.
В случае функции последовательного поиска ей необходимо знать 1) какой это массивсобираюсь искать, 2) насколько велик этот массив, 3) какой идентификатор вы ищете.Это параметры.Представляется разумным, что функция возвращает индекс в массиве найденного человека или специальное значение -1
, если не находит идентификатор.Это не единственный способ сделать это, но пока подойдет.Итак, сложив вместе, у нас есть
// look for 'id' in 'array' and returns the index if found or -1 if not found
int sequential_search(Person array[], int array_size, int id)
{
...
}
В вашей основной функции вы бы использовали эту функцию примерно так
int main()
{
...
// look for person with id 5
int id = 5;
int index = sequential_search(firstArray, 12, id);
if (index == -1)
cout << "ID " << id << " not found\n";
else
cout << "ID " << id << " is " << firstArray[index].name << "\n";
}
Понять?Надеюсь, это даст вам начало.Вы можете сделать все остальное и спросить еще раз, если у вас возникли трудности.