Определить какие значения одномерного массива повторяются и сколько раз они повторяются - QBasic
Формулировка задачи:
Само задание: Подсчитать какие значения элементов задаваемого пользователем одномерного массива повторяются и сколько раз они повторяются.
Я пробовал отсортировать массив ,а затем, сравнивая первый элемент с последующим, определить повторяющиеся элементы. У меня не получилось. Поиск похожих задач ничего не дал.
Подскажите где я ошибся. Если можно напишите код рабочей программы.
Листинг программы
- INPUT "vvedite kolichestvo elementov N ", n
- DIM a(n)
- FOR i = 1 TO n
- INPUT "vvedite element ", a(i)
- NEXT
- DO
- F = 0
- FOR i = 1 TO n - 1
- IF a(i) < a(i + 1) THEN
- tmp = a(i)
- a(i) = a(i + 1)
- a(i + 1) = tmp
- F = 1
- END IF
- NEXT i
- LOOP UNTIL F = 0
- FOR i = 1 TO n
- IF a(i) = a(i + 1) THEN k = k + 1
- NEXT i
- FOR i = 1 TO n
- PRINT a(i); k
- NEXT
Решение задачи: «Определить какие значения одномерного массива повторяются и сколько раз они повторяются»
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
Объяснение кода листинга программы
- Объявляются переменные: n (количество элементов в массиве), A(n) (массив для хранения чисел), B(n) (массив для хранения количества повторений чисел).
- Заполняется массив A случайными числами от 0 до 4 с помощью функции RND.
- С помощью двух вложенных циклов (for) происходит сортировка массива A по возрастанию.
- С помощью цикла (for) происходит проверка на повторение чисел в массиве A. Если число повторяется, то увеличивается значение в соответствующей ячейке массива B.
- В конце программы выводятся все значения, которые повторяются в массиве A с помощью цикла (for) и условного оператора (if).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д