Сравните первый элемент с n элементами, если он уникален (struct in C)
Я работаю над базой данных на языке Си, которая предлагает пользователю ввести уникальный идентификационный код (UID) для продукта, например, значение int 1, для первого элемента, 2 для следующего, 3...и т. д...
Однако, когда я пытаюсь сравнить каждый UID, оператор if не ловит "ошибку", что другой элемент имеет тот же UID.
Напр.
Пункт 1: UID 1
Пункт 2: UID 1 / / это ошибка, над которой я сейчас работаю
Затем программа должна предупредить пользователя, что UID элемента 2 не является уникальным, и ввести "правильное" значение до тех пор, пока он этого не сделает. (это рекурсивный вызов функции).
Тогда результат должен быть:
Пункт 1: UID 1
Пункт 2: UID 2 и т. д...
Я был бы очень признателен за любую помощь
Что я уже пробовал:
// struct templates omitted int num_of_items = 0; // enter item details below fprintf(stdout, "Enter unique identifier for item %d\n", num_of_items); scanf("%d", &unique_ID); fflush(stdin); inventory[num_of_items].item_ID = unique_ID; // check if ID is unique for each inventory item if (inventory[num_of_items + 1].item_ID == inventory[num_of_items].item_ID) { fprintf(stderr, "%s\n", "You must enter a unique identifier"); add_new_item(inventory); } else { // prompt user for values }