Определить какие значения одномерного массива повторяются и сколько раз они повторяются - QBasic

Узнай цену своей работы

Формулировка задачи:

Само задание: Подсчитать какие значения элементов задаваемого пользователем одномерного массива повторяются и сколько раз они повторяются. Я пробовал отсортировать массив ,а затем, сравнивая первый элемент с последующим, определить повторяющиеся элементы. У меня не получилось. Поиск похожих задач ничего не дал.
Подскажите где я ошибся. Если можно напишите код рабочей программы.

Решение задачи: «Определить какие значения одномерного массива повторяются и сколько раз они повторяются»

textual
Листинг программы
CLS
RANDOMIZE TIMER
n = 12
DIM A(n) AS INTEGER
DIM B(n)
 
FOR i = 1 TO n
   A(i) = 4 * RND
   PRINT A(i);
NEXT i
PRINT : PRINT
 
FOR i = 1 TO n - 1
FOR j = i + 1 TO n
   IF A(i) > A(j) THEN SWAP A(i), A(j)
NEXT j
NEXT i
 
FOR i = 1 TO n
   PRINT A(i);
NEXT i
PRINT : PRINT
 
A(0) = A(1)
i = 0
j = 1
DO
   IF A(i) = A(i + 1) THEN
      B(j) = B(j) + 1
      i = i + 1
   ELSE
      i = i + 1
      j = j + 1
      B(j) = 1
   END IF
LOOP UNTIL i = n
 
FOR i = 1 TO n
   IF B(i) THEN PRINT B(i);
NEXT i
 
END

Объяснение кода листинга программы

  1. Объявляются переменные: n (количество элементов в массиве), A(n) (массив для хранения чисел), B(n) (массив для хранения количества повторений чисел).
  2. Заполняется массив A случайными числами от 0 до 4 с помощью функции RND.
  3. С помощью двух вложенных циклов (for) происходит сортировка массива A по возрастанию.
  4. С помощью цикла (for) происходит проверка на повторение чисел в массиве A. Если число повторяется, то увеличивается значение в соответствующей ячейке массива B.
  5. В конце программы выводятся все значения, которые повторяются в массиве A с помощью цикла (for) и условного оператора (if).

Оцени полезность:

12   голосов , оценка 3.833 из 5
Похожие ответы