Есть массив, проверить, является ли он перестановкой - 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
— завершение программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д