Основы программирования на С++ для начинающих

Задачи: Двумерные массивы C++

Чтобы приступить к решению задач, предложенных в этой статье, вам необходимо знать что такое двумерные (многомерные) массивы . Задачи расположены от простой к сложной. Так что, если вы новичок в программировании, начинайте с первой, чтобы лучше разобраться с остальными.

1. Объявить двумерный массив, заполнить целыми числами и показать на экран. 

2) Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения – показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и каждой строке.

3) Заполнить двумерный массив случайными  числами от 10  до 100. Посчитать сумму элементов отдельно в каждой строке и определить номер строки,  в которой эта сумма максимальна.

Ваши вопросы, которые возникли при решении задач, оставляйте в комментариях к этой статье.

107 thoughts on “Задачи: Двумерные массивы C++

  1. #include
    using namespace std;

    int main()
    {
    const int ROW = 3;
    const int COL = 3;
    setlocale(LC_ALL, “RU”);
    int arr[ROW][COL];
    cout << "Заполните двумерный массив случайными числами" << endl;
    for (int i = 0; i < ROW; i++) {
    for (int j = 0; j > arr[i][j];
    }
    }
    int sumROW = 0, sumCOL = 0;
    cout << endl;
    for (int i = 0; i < ROW; i++) {
    for (int j = 0; j < COL; j++) {
    cout << arr[i][j]<< "\t";
    }
    cout<<endl;
    }
    for (int i = 0; i < ROW; i++) {
    for (int j = 0; j < COL; j++) {
    sumROW = sumROW + arr[i][j];
    }
    cout << "Сумма элементов в строке : " << i + 1 << " " << sumROW;
    sumROW = 0;
    cout << endl;
    }
    for (int i = 0; i < ROW; i++) {
    for (int j = 0; j < COL; j++) {
    sumCOL = sumCOL + arr[j][i];
    }
    cout << "Сумма элементов в столбце : " << i + 1 << " " << sumCOL ;
    sumCOL = 0;
    cout << endl;
    }
    }

  2. #include
    #include

    using namespace std;

    int main()
    {
    srand(time(NULL));
    const int ROW = 10;
    const int COL = 10;
    int sumROW = 0;
    int sumROWMax = 0;
    int numberROW = 1;

    setlocale(LC_ALL, “RU”);
    int arr[ROW][COL];
    for (int i = 0; i < ROW; i++) {
    for (int j = 0; j < COL; j++) {
    arr[i][j] = rand() % 100 + 10;
    }
    }
    for (int i = 0; i < ROW; i++) {
    for (int j = 0; j < COL; j++) {
    cout << arr[i][j] << "\t";
    }
    cout << endl;
    }
    for (int i = 0; i < ROW; i++)
    {
    for (int j = 0; j < COL; j++)
    {
    sumROW = sumROW + arr[i][j];
    }
    cout << "Сумма элементов в строке : " << i + 1 << " " << sumROW << endl;
    sumROW = 0;
    }
    cout << endl;

    for (int i = 0; i < ROW; i++)
    {
    for (int j = 0; j sumROWMax)
    {
    sumROWMax = sumROW;
    numberROW = i;
    }
    sumROW = 0;
    }
    cout << "Максимальная сумма элементов в строке "<< numberROW + 1 << ". сумма строки : " << sumROWMax << endl;

    }

  3. А можно еще 3-4 задачи по этой теме? Автору RESPECT за такой обучающий материал, очень доходчиво и просто изложены темы

  4. #include
    #define DEBUG
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “ru”);
    int ROWS, COLS;
    cout <> ROWS;
    cout <> COLS;
    int** a = new int*[ROWS];
    for (int i = 0; i < ROWS; i++)
    a[i] = new int[COLS];

    for (int i = 0; i < ROWS; i++) // ввод элементов матрицы
    for (int j = 0; j < COLS; j++)
    a[i][j] = rand() % 101 + 10;
    cout<< endl;
    #ifdef DEBUG
    for (int i = 0; i < ROWS; i++)
    {
    for (int j = 0; j < COLS; j++)
    cout << a[i][j] << " ";
    cout << endl;
    } //вывод матрицы
    #endif
    int* sum_in_row = new int[ROWS]; // инициализация массива
    for (int i = 0; i < ROWS; i++)
    sum_in_row[i] = 0;
    for (int i = 0; i < ROWS; i++) // подсчет сумм элементов строк
    {
    int sum = 0;
    for (int j = 0; j < COLS; j++)
    sum_in_row[i] += a[i][j];
    }

    for (int i = 0; i < ROWS; i++)
    cout << "сумма строки " << i + 1 << "=" << sum_in_row[i] << endl; // вывод сумм строк

    int num_max_sum = 0;
    int max_sum = 0;
    int h=0;
    for (int i = 0; i max_sum ? max_sum = sum_in_row[i], num_max_sum = i:h++;

    cout << "номер строки с наибольшей суммой: " << num_max_sum+1;

    for (int i = 0; i < ROWS; i++) // очистка памяти
    delete [] a[i];
    delete [] a;
    delete[] sum_in_row;
    }

  5. #include
    using namespace std;
    #include
    #include “mainCu.h”
    int main()
    {
    setlocale(LC_ALL, “rus”);
    srand(time(NULL));
    int row;
    cin >> row;
    int col;
    cin >> col;
    int** arr = new int* [row];
    int* row_arr_sum = new int[row];
    int* col_arr_sum = new int[col];
    int row_sum = 0, col_sum = 0;
    for (short i = 0; i < row; i++)
    row_arr_sum[i] = 0;
    for (short i = 0; i < row; i++)
    col_arr_sum[i] = 0;
    for (short i = 0; i < row; i++) {
    arr[i] = new int[row];
    for (short j = 0; j < col; j++)
    arr[i][j] = rand() % 10;
    }
    for (short i = 0; i < row; i++) {
    for (short j = 0; j < col; j++)
    cout <<"|"<< arr[i][j] << "|";
    cout << endl;
    }cout << endl;
    for (short i = 0; i < row; i++) {
    for (short j = 0; j < col; j++) {
    row_arr_sum[i] += arr[i][j];
    col_arr_sum[i] += arr[i][j];
    }
    }
    cout << "сумма по строкам: " << endl;
    for (short i = 0; i < row; i++) {
    row_sum += row_arr_sum[i];
    cout << "строка(" << i+1 << "):"<< row_arr_sum[i]<<endl;
    } cout << "сумма по столбцам: " << endl;
    for (short i = 0; i < row; i++){
    col_sum += row_arr_sum[i];
    cout << "столбец(" << i + 1 << "):" << col_arr_sum[i] <<endl;}
    cout << endl << col_sum << endl << row_sum << endl;

    }

    1. //к сожелению там допустил пару ошибок. тут исправлено

      #include
      using namespace std;
      #include
      #include “mainCu.h”
      int main()
      {
      setlocale(LC_ALL, “rus”);
      srand(time(NULL));
      int row;
      cin >> row;
      int col;
      cin >> col;
      int** arr = new int* [row];
      int* row_arr_sum = new int[row];
      int* col_arr_sum = new int[col];

      for (short i = 0; i < row; i++)
      row_arr_sum[i] = 0;
      for (short i = 0; i < row; i++)
      col_arr_sum[i] = 0;
      for (short i = 0; i < row; i++) {
      arr[i] = new int[row];
      for (short j = 0; j < col; j++)
      arr[i][j] = rand() % 10;
      }
      for (short i = 0; i < row; i++) {
      for (short j = 0; j < col; j++)
      cout <<"|"<< arr[i][j] << "|";
      cout << endl;
      }cout << endl;
      for (short i = 0; i < row; i++) {
      for (short j = 0; j < col; j++){
      row_arr_sum[i] += arr[i][j];
      col_arr_sum[i] += arr[j][i];
      }
      }
      cout << "сумма по строкам: " << endl;
      for (short i = 0; i < row; i++) {
      cout << "строка(" << i+1 << "):"<< row_arr_sum[i]<<endl;
      } cout << "сумма по столбцам: " << endl;
      for (short i = 0; i < row; i++){
      cout << "столбец(" << i + 1 << "):" << col_arr_sum[i] <<endl;}
      int max_count = 0;
      int min_count =0;
      int max_row_sum = row_arr_sum[0], min_row_sum = row_arr_sum[0];
      for (short i= 0; i <row; i++)
      {

      if (max_row_sum row_arr_sum[i]) {

      min_row_sum = row_arr_sum[i];
      min_count = i;
      }
      }
      cout << "максимальная сумма в строке №" << max_count + 1 << " = " << max_row_sum << endl
      << "Минимальная сумма в строке №" << min_count + 1 << " = " << min_row_sum << endl;

      }

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *