Описать процедуру, которая проверяет, есть ли в списке L хотя бы 2 одинаковых элемента. Алгоритм и общая идея: 2. Надо сравнивать I-ый элемент со II-ым, III-им... и т.д. до конца списка. Создаем вложенный друг в друга цикл, в котором вложенный начинается на 1 больше, чем значение переменной первого. Внутри этих циклов проверяем не равны ли элементы друг другу с номерами счетчиков 1 и 2 цикла. Если условие выполняется, т.е. имеется хотя бы два однинаковых элемента в списке, то устанавливаем флажок в положение 1 (истина). В конце выдаем результат согласно флагу. Вот и вся программа :) Входные данные и описание:
#define SIZE 100 int L[SIZE], next[SIZE]; int does_equal() { int equal = 0; // флажок наличия в списке хотя бы двух одинаковых элементов. По- умолчанию установлен в "ложь" for (int i = 0; i < SIZE; i++) { for (int j = i+1; j < SIZE; j++) { if (L[i] == L[next[j]]) equal = 1; } } if (equal == 1) printf ("В списке есть одинаковые элементы!\n") else printf ("Одинаковые элементы в списке не найдены!\n"); return equal; }
Ключевые слова:
одинаковые элементы, список
|
|||||||