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

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

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

Само задание: Подсчитать какие значения элементов задаваемого пользователем одномерного массива повторяются и сколько раз они повторяются. Я пробовал отсортировать массив ,а затем, сравнивая первый элемент с последующим, определить повторяющиеся элементы. У меня не получилось. Поиск похожих задач ничего не дал.
Листинг программы
  1. INPUT "vvedite kolichestvo elementov N ", n
  2. DIM a(n)
  3. FOR i = 1 TO n
  4. INPUT "vvedite element ", a(i)
  5. NEXT
  6. DO
  7. F = 0
  8. FOR i = 1 TO n - 1
  9. IF a(i) < a(i + 1) THEN
  10. tmp = a(i)
  11. a(i) = a(i + 1)
  12. a(i + 1) = tmp
  13. F = 1
  14. END IF
  15. NEXT i
  16. LOOP UNTIL F = 0
  17. FOR i = 1 TO n
  18. IF a(i) = a(i + 1) THEN k = k + 1
  19. NEXT i
  20. FOR i = 1 TO n
  21. PRINT a(i); k
  22. NEXT
Подскажите где я ошибся. Если можно напишите код рабочей программы.

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

textual
Листинг программы
  1. CLS
  2. RANDOMIZE TIMER
  3. n = 12
  4. DIM A(n) AS INTEGER
  5. DIM B(n)
  6.  
  7. FOR i = 1 TO n
  8.    A(i) = 4 * RND
  9.    PRINT A(i);
  10. NEXT i
  11. PRINT : PRINT
  12.  
  13. FOR i = 1 TO n - 1
  14. FOR j = i + 1 TO n
  15.    IF A(i) > A(j) THEN SWAP A(i), A(j)
  16. NEXT j
  17. NEXT i
  18.  
  19. FOR i = 1 TO n
  20.    PRINT A(i);
  21. NEXT i
  22. PRINT : PRINT
  23.  
  24. A(0) = A(1)
  25. i = 0
  26. j = 1
  27. DO
  28.    IF A(i) = A(i + 1) THEN
  29.       B(j) = B(j) + 1
  30.       i = i + 1
  31.    ELSE
  32.       i = i + 1
  33.       j = j + 1
  34.       B(j) = 1
  35.    END IF
  36. LOOP UNTIL i = n
  37.  
  38. FOR i = 1 TO n
  39.    IF B(i) THEN PRINT B(i);
  40. NEXT i
  41.  
  42. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы