Найти в обоих массивах по наибольшему элементу и если они различны, то поменять их местами - QBasic

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

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

Задан двумерный массив А целых чисел из М строк и К столбцов. Составить новый двумерный массив У из тех строк массива А, которые не упорядочены по возрастанию. Найти в обоих массивах по наибольшему элементу и если они различны, то поменять их местами.

Решение задачи: «Найти в обоих массивах по наибольшему элементу и если они различны, то поменять их местами»

textual
Листинг программы
  1. CLS
  2. RANDOMIZE TIMER
  3. m = 6
  4. k = 8
  5. DIM A(1 TO m, 1 TO k) AS INTEGER
  6. DIM B(1 TO m) AS INTEGER
  7.  
  8. FOR i = 1 TO m
  9. FOR j = 1 TO k
  10.    A(i, j) = 80 * RND - 40
  11. NEXT j, i
  12.  
  13. FOR i = 1 TO k
  14.    A(1, i) = 5 * i - 1
  15.    A(3, i) = 3 * i + 1
  16.    A(6, i) = 4 * i - 3
  17. NEXT i
  18.  
  19. FOR i = 1 TO m
  20. FOR j = 1 TO k
  21.    PRINT USING "####"; A(i, j);
  22. NEXT j: PRINT
  23. NEXT i: PRINT
  24.  
  25. FOR i = 1 TO m
  26. FOR j = 1 TO k - 1
  27. FOR j2 = j + 1 TO k
  28.    IF A(i, j) > A(i, j2) THEN B(i) = 1
  29. NEXT j2, j, i
  30.  
  31. m2 = 0
  32. FOR i = 1 TO m
  33.    m2 = m2 + B(i)
  34. NEXT i
  35.  
  36. DIM Y(1 TO m2, 1 TO k) AS INTEGER
  37.  
  38. i = 1
  39. i2 = 1
  40. DO
  41.    IF B(i) = 1 THEN
  42.       FOR j = 1 TO k
  43.          Y(i2, j) = A(i, j)
  44.       NEXT j
  45.       i2 = i2 + 1
  46.    END IF
  47.    i = i + 1
  48. LOOP UNTIL i > m
  49.  
  50. FOR i = 1 TO m2
  51. FOR j = 1 TO k
  52.    PRINT USING "####"; Y(i, j);
  53. NEXT j: PRINT
  54. NEXT i: PRINT
  55.  
  56. max1 = A(1, 1)
  57. max2 = Y(1, 1)
  58. im1 = 1
  59. jm1 = 1
  60. im2 = 1
  61. jm2 = 1
  62.  
  63. FOR i = 1 TO m
  64. FOR j = 1 TO k
  65.    IF max1 < A(i, j) THEN
  66.       max1 = A(i, j)
  67.       im1 = i
  68.       jm1 = j
  69.    END IF
  70. NEXT j, i
  71.  
  72. FOR i = 1 TO m2
  73. FOR j = 1 TO k
  74.    IF max2 < Y(i, j) THEN
  75.       max2 = Y(i, j)
  76.       im2 = i
  77.       jm2 = j
  78.    END IF
  79. NEXT j, i
  80.  
  81. PRINT "MAX A("; im1; jm1; ") ="; max1
  82. PRINT "MAX Y("; im2; jm2; ") ="; max2
  83. PRINT
  84.  
  85. IF max1 <> max2 THEN SWAP A(im1, jm1), Y(im2, jm2)
  86.  
  87. END

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

11   голосов , оценка 3.909 из 5

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

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

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