Есть массив, проверить, является ли он перестановкой - QBasic
Формулировка задачи:
Проблема!
Есть массив, проверить, является ли он перестановкой.Не работае программа при вводе одинаковых чисел((((
Подскажите, как узнать, есть ли одинаковые элементы?
Решение задачи: «Есть массив, проверить, является ли он перестановкой»
textual
Листинг программы
- CLS
- RANDOMIZE TIMER
- n = 10
- DIM a(n)
- FOR i = 1 TO n
- a(i) = FIX(90 * RND)
- PRINT a(i);
- NEXT
- PRINT : PRINT
- FOR i = 1 TO n
- k = 0
- FOR j = 1 TO n
- IF a(i) = a(j) THEN k = k + 1
- IF k > 1 THEN PRINT "NO": END
- NEXT j, i
- PRINT "YES"
- END
Объяснение кода листинга программы
CLS
— очистка экранаRANDOMIZE TIMER
— установка генератора случайных чиселn = 10
— размер массиваDIM a(n)
— создание массива a размером nFOR i = 1 TO n
— цикл по индексам массива aa(i) = FIX(90 * RND)
— заполнение массива a случайными числами от 0 до 90PRINT a(i);
— печать значения элемента массива aNEXT
— переход к следующему элементу массиваPRINT : PRINT
— печать двух знаков:
, для разделения выводаFOR i = 1 TO n
— цикл по индексам массива ak = 0
— инициализация переменной k для подсчета повторяющихся элементовFOR j = 1 TO n
— цикл по индексам массива aIF a(i) = a(j) THEN k = k + 1
— увеличение переменной k, если текущий элемент массива a(i) равен любому другому элементу массива a(j)IF k > 1 THEN PRINT
NO: END
— печатьNO
, если количество повторяющихся элементов больше 1NEXT j, i
— переход к следующим элементам массива aPRINT
YES` — печать
YES`, если все элементы массива уникальныEND
— завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д