Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Решение задач на двумерные массивы

Читайте также:
  1. B) требуется разрешение департамента юстиции
  2. B)& Решение, определение, постановление и судебный приказ
  3. F) Обжалуемое решение.
  4. G) Решение о восстановлении утраченного судебного решения.
  5. I. ЗАДАЧИ ПАРТИИ В ОБЛАСТИ ЭКОНОМИЧЕСКОГО СТРОИТЕЛЬСТВА, СОЗДАНИЯ И РАЗВИТИЯ МАТЕРИАЛЬНО-ТЕХНИЧЕСКОЙ БАЗЫ КОММУНИЗМА
  6. I. Составление математической модели задачи.
  7. I. Цели и задачи

Для закрепления пройденного материала мы выполним решение задач на двумерные массивы. Первая задача будет такая:

1. Нужно создать двумерный массив, размером 5 х 7 (пять строк, семь столбцов). Заполнить его случайно целыми числами, в районе от 0 до 30. Вывести получившийся массив на экран. Затем нужно отсортировать строки массива так, чтобы первой шла строка, сумма элементов которой была меньше, чем остальных. И так далее, по возрастанию. Для сортировки удобно использовать, алгоритм сортировки отбором. Вот только в этом случае этот алгоритм сортировки уже будет сортировать не отдельные числа одномерного массива, а строки двумерного массива, исходя из суммы ее элементов.

Попытайтесь сами реализовать программу, выполняющую эту задачу. В случае необходимости можете посмотреть мой вариант решения этой задачи, который привожу ниже.

01.//Двумерные массивы - решение задач

02.

03.#include <iostream>

04.#include <iomanip>

05.#include <stdlib.h>

06.#include <time.h>

07.

08.using namespace std;

09.

10.void initMatrix(int[][7], const int, const int);

11.void replaceColumn(int[][7], const int, int, int);

12.void printMatrix(int[][7], const int, const int);

13.

14.int main()

15.{

16. const int column = 5, row = 7;

17. int matrix[column][row];

18. int counter, result, columnMin;

19.

20. srand(time(NULL));

21.

22. //инициализируем двумерный массив случайными величинами,

23. //затем печатаем его

24. initMatrix(matrix, column, row);

25. cout << "\nNoSorted array" << endl << endl;

26. printMatrix(matrix, column, row);

27.

28. //делаем проходы столько раз, сколько строк в массиве

29. for(int N = 0; N < column - 1; N++)

30. {

31. result = row * 30;

32.

33. //анализируем массив и находим строку,

34. //сумма элементов которой минимальная

35. for(int i = N; i < column; i++)

36. {

37. //обнуляем счетчик суммы элементов строки

38. counter = 0;

39.

40. //проходим по элементам данной строки

41. //и считаем сумму

42. for(int j = 0; j < row; j++)

43. counter += matrix[i][j];

44.

45. //result в итоге будет хранить значение минимальной суммы

46. //columnMin будет хранить значение строки, в которой

47. //была найдена минимальная сумма

48. if(result > counter)

49. {

50. result = counter;

51. columnMin = i;

52. }

53. }

54.

55. replaceColumn(matrix, row, N, columnMin);

56. }

57.

58. //печатаем отсортированный массив

59. cout << "\nSorted array" << endl << endl;

60. printMatrix(matrix, column, row);

61.

62. return 0;

63.}

64.

65.//инициализация двумерного массива

66.void initMatrix(int matrix[][7], const int column, const int row)

67.{

68. for(int i = 0; i < column; i++)

69. for(int j = 0; j < row; j++)

70. matrix[i][j] = rand() % 30;

71.}

72.

73.//меняем строки массива местами

74.void replaceColumn(int matrix[][7], const int row, int N, int columnMin)

75.{

76. int buffer[row];

77.

78. for(int j = 0; j < row; j++)

79. {

80. buffer[j] = matrix[columnMin][j];

81. matrix[columnMin][j] = matrix[N][j];

82. matrix[N][j] = buffer[j];

83. }

84.}

85.

86.//печать двумерного массива

87.void printMatrix(int matrix[][7], const int column, const int row)

88.{

89. for(int i = 0; i < column; i++)

90. {

91. for(int j = 0; j < row; j++)

92. cout << setw(3) << matrix[i][j];

93.

94. cout << endl;

95. }

96.}

Результат работы программы:

 

 


Дата добавления: 2015-08-18; просмотров: 44 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Говорим о двумерных массивах| Сущ-ть и з бу, его нормат-прав регулир. Осно направления реформ-ния бу в РФ

mybiblioteka.su - 2015-2024 год. (0.007 сек.)