Tasks: Two-dimensional arrays C ++

To begin to address the tasks, proposed in this article, you need to know that is two-dimensional (multidimensional) arrays . Tasks are arranged from simple to complex. So that, If you're new to programming, start with the first, to better deal with the other.

1. Declare a two-dimensional array, fill integers and display on the screen.

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

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

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

Чтобы поддержать наш сайт – нажмите на копилку и выберите любой удобный для Вас способ.

Рассылка новых уроков по программированию:

Задачи: Двумерные массивы C++
4.5 (90%) 8 votes

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

  1. Задачу №3 можно решить используя лишь 1 цикл с вложенным, место трёх, как в ответе.

    1. Согласен, не стоит давать такие глупые решения задач новичкам, в том числе и мне. Нужно приучать людей с самого начала использовать меньше ненужных циклов, чтобы улучшить скорость выполнения программы..

      Вот нормальное решение 3-го задания: cpp.sh/9zvl

      1. Глупость написана (про “улучшить скорость выполнения программы”).

  2. 1. Попытался решить задачу №2, введя две константы:
    iLine на число строк
    iColumn на число столбцов
    то есть количество строк не совпадает с количеством столбцов. В результате после компиляции, выводится не верное значение суммы 3-го столбца. В чем моя ошибка?
    2. В примере решения задачи №2 в строке кода №35, я так понимаю вместо columnSum[rowNum]—— должно быть —–columnSum[columnNum] или я ошибаюсь?

    1. ИМХО, если количество строк не совпадает с количеством столбцов, то нужно создавать два отдельных цикла для подсчета сумы строк и столбцов.

    2. та же проблема была, вот такое выдумал.

      #include
      #include
      using namespace std;

      int main()

      {
      setlocale(LC_ALL, “rus”);
      const int strok = 2;
      const int stolb = 3;
      int array[strok][stolb] = {};
      int isumm[strok] = {};
      int isum[stolb] = {};
      int s(0), st(0);

      cout << "Заполните таблицу"<<endl;

      for (int s = 0; s < strok; s++)

      {
      for (int st = 0; st < stolb; st++)
      {
      cout << "Введите значение " << s + 1 << "-й стройки и " << st + 1 <> array[s][st];

      }
      cout << endl;
      }

      for (int s = 0; s < strok; s++)
      {
      for (int st = 0; st < stolb; st++)
      {
      cout <<setw(5)<< array[s][st];
      isumm[s]+= array[s][st];
      isum[st]+= array[s][st];
      }
      cout << endl;

      cout << endl;

      }
      for (int i = 0; i < strok; i++)
      {
      cout << i + 1 << "-ая строка cумма " << isumm[i] << " " << endl;

      }
      for (int i = 0; i < stolb; i++)
      {
      cout << i + 1 << "-ый столбец cумма " << isum[i] << " " << endl;
      }

      return 0;
      }

  3. А как заполнить прямоугольную матрицу состоящую только из нулей и единиц , имеющей N строк M столбцов

  4. Привет. Решил вторую задачу. все работает как надо. Потом зашел посмотреть решение. Там тоже все ок. НО. Не понимаю зачем записывать сумму всех строк и всех столбцов в массивы когда можно записать в переменные? Какой в этом смысл? Вот мое решение. Делал без всяких красивостей.

    #include
    using namespace std;

    int main()
    {
    int matrixSize = 3;

    int arr[matrixSize][matrixSize] = {};

    // Ввод двумерного массива с клавиатуры
    for(int i = 0; i < matrixSize; i++)
    {
    for(int j = 0; j > arr[i][j];
    }
    }

    // Вывод двумерного массива
    for(int i = 0; i < matrixSize; i++)
    {
    for(int j = 0; j < matrixSize; j++)
    {
    cout<<"\t"<<arr[i][j];
    }
    cout<<endl;
    }

    // Вычисление и вывод суммы строк
    for(int i = 0; i < matrixSize; i++)
    {
    int sum = 0;
    for(int j = 0; j < matrixSize; j++)
    {
    sum += arr[i][j];
    }
    cout<<endl<<sum;
    }

    cout<<endl<<endl;

    // вычисление и вывод суммы столбцов
    for(int i = 0; i < matrixSize; i++)
    {
    int sum = 0;
    for(int j = 0; j < matrixSize; j++)
    {
    sum += arr[j][i];
    }
    cout<<sum<<endl;
    }
    }

    1. #include
      using namespace std;

      int main()
      {
      int matrixSize = 3;

      int arr[matrixSize][matrixSize] = {};

      // Ввод двумерного массива с клавиатуры
      for(int i = 0; i < matrixSize; i++)
      {
      for(int j = 0; j > arr[i][j];
      }
      }

      // Вывод двумерного массива
      for(int i = 0; i < matrixSize; i++)
      {
      for(int j = 0; j < matrixSize; j++)
      {
      cout<<"\t"<<arr[i][j];
      }
      cout<<endl;
      }

      // Вычисление и вывод суммы строк
      for(int i = 0; i < matrixSize; i++)
      {
      int sum = 0;
      for(int j = 0; j < matrixSize; j++)
      {
      sum += arr[i][j];
      }
      cout<<endl<<sum;
      }

      cout<<endl<<endl;

      // вычисление и вывод суммы столбцов
      for(int i = 0; i < matrixSize; i++)
      {
      int sum = 0;
      for(int j = 0; j < matrixSize; j++)
      {
      sum += arr[j][i];
      }
      cout<<sum<<endl;
      }
      }

  5. Задан двумерный массив А из 5-и строк и 4-х столбцов. Составить программу, которая вычисляет значение произведения сумм строк.

Leave a Reply

Your email address will not be published. Required fields are marked *