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

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

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

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

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

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

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

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

  1. Здравствуйте. а как вот в вашем 3 примере вводить размер строки и столбца самим?

  2. Я 2 иначе придумал:
    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “Russian”);
    const int STROKA = 3;
    const int STOLBEC = 4;
    int massiv[STROKA][STOLBEC];
    int sum_stroki=0, sum_stolbca;
    cout << "Вводите элементы массива: " << endl;
    //Ввод массива
    for (int i = 0; i < STROKA; i++)
    {
    cout << i+1<<"-я строка: " << endl;
    for (int j = 0; j > massiv[i][j];
    }
    }
    //Вывод массива
    for (int i = 0; i < STROKA; i++)
    {
    for (int j = 0; j < STOLBEC; j++)
    {
    cout << massiv[i][j]<<" ";
    }
    cout << endl;
    }
    //Вывод сумм строк
    for (int i = 0; i < STROKA; i++)
    {
    for (int j = 0; j < STOLBEC; j++)
    {
    sum_stroki += massiv[i][j];
    }
    cout << "Сумма " << i + 1 << "-ой строки: " << sum_stroki << endl;

    }
    cout << endl;
    //Вывод сумм столбцов
    for (int j = 0; j < STOLBEC; j++)
    {
    sum_stolbca = 0;
    for (int i = 0; i < STROKA; i++)
    {
    sum_stolbca += massiv[i][j];
    }
    cout << "Сумма " << j + 1 << "-го столбца: " << sum_stolbca << endl;
    }
    }

  3. Вот мой вариант 3 задания:
    #include
    #include
    using namespace std;
    int main()
    {
    setlocale(LC_ALL, “Russian”);
    srand(time(NULL));
    const int STROKA = 6;
    const int STOLBEC = 6;
    int massiv[STROKA][STOLBEC];
    int massiv_sum_strok[STROKA];
    int sum_stroki,max_sum, max_number=0;
    for (int i = 0; i < STROKA; i++)
    {
    for (int j = 0; j < STOLBEC; j++)
    {
    massiv[i][j] = rand() % 90 + 10;
    }
    }
    for (int i = 0; i < STROKA; i++)
    {
    for (int j = 0; j < STOLBEC; j++)
    {
    cout << massiv[i][j] << " ";
    }
    cout << endl;
    }
    for (int i = 0; i < STROKA; i++)
    {
    sum_stroki = 0;
    for (int j = 0; j < STOLBEC; j++)
    {
    sum_stroki+= massiv[i][j];

    }
    massiv_sum_strok[i] = sum_stroki;
    cout << "Сумма элементов " << i + 1 << "-ой строки: " << sum_stroki << endl;
    }
    max_sum = massiv_sum_strok[0];
    for (int i = 0; i max_sum)
    {
    max_sum = massiv_sum_strok[i];
    max_number = i;
    }
    }
    cout << "Максимальная сумма элементов строки: " << max_sum << endl;
    cout << "Номер строки с максимальной суммой элементов: " << max_number+1;
    }
    извиняюсь что без коментов:)

  4. Мой ответ на 3-тье задание .
    #include
    #include
    using namespace std;
    int main() {
    setlocale(LC_ALL,”RUS”);
    const int ROW = 3;
    const int COL = 4;
    int ARR[ROW][COL];
    srand(time(NULL));
    for (int i = 0; i < ROW; i++) {
    for (int g = 0; g < COL; g++) {
    ARR[i][g] = rand() % 91 + 10;

    }
    }
    int ARR1[ROW]{};
    for (int i = 0; i < ROW; i++) {
    int T = 0;
    for (int g = 0; g < COL; g++) {

    T += ARR[i][g];
    ARR1[i] = T;
    }
    }
    int o;
    o = ARR1[0];
    int p;
    p = 0;
    for (int i = 1; i < ROW; i++) {
    if (o < ARR1[i]) {
    o = ARR1[i];
    p = i;
    }
    }
    cout << "В строчке " << p << " сумма всех ее элементов наибольшая ";
    }

  5. ——– 2 ——–
    #include
    #include
    using namespace std;

    int main() {

    const int _lenq = 3;
    const int _boy = 3;
    int _entereNum;
    int tver[_lenq][_boy] = {};
    int _sum = 0;

    cout << "Fill the matrix 3×3 numbers line by line\n";

    for (int i = 0; i != _boy; i++) {
    for (int j = 0; j != _lenq; j++) {
    cout << i+1 << " column " << j+1 <> _entereNum;
    tver[i][j] = _entereNum;
    }
    cout << endl;
    }
    for (int i = 0; i != _boy; i++) {
    cout << "|";
    for (int j = 0; j != _lenq; j++) {
    cout << setw(4) << tver[i][j] << setw(4);
    }
    cout << " |" << endl;
    }
    cout << "The sum or each rows:" << endl;

    for (int i = 0; i != _boy; i++) {
    for (int j = 0; j != _lenq; j++) {
    _sum += tver[i][j];
    }
    cout << "Row " << i << ": " << _sum << endl;
    _sum = 0;
    }

    cout << "The sum or each columns:" << endl;
    for (int j = 0; j != _lenq; j++) {
    for (int i = 0; i != _boy; i++) {
    _sum += tver[i][j];
    }
    cout << "Column " << j << ": " << _sum << endl;
    _sum = 0;
    }
    return 0;
    }

  6. Мой калькулятор:

    for(int line = 0; line < LINES; line++)
    {
    for(int column = 0; column < COLUMNS; t++)
    {
    arrayAmmountLines[line] += arrayMain[line][column];
    arrayAmmountColumns[column] += arrayMain[line][colum];
    }
    }

  7. Задача №3

    #include
    #include
    using namespace std;
    int main()
    {
    srand(time(NULL));
    int arr[2][2] = {{10 + rand() % 90 , 10 + rand() % 90 },{10 + rand() % 90 , 10 + rand() % 90 }};

    for(int i = 0; i < 2; i++){
    for(int j = 0; j < 2; j++){
    cout << " " << arr[i][j];
    }
    cout << endl;
    }
    return 0;
    }

  8. 3ее задание:

    #include
    #include
    using namespace std;

    int main()
    {
    setlocale(LC_ALL, “ru”);

    srand(time (NULL));
    const int ROW = 4;
    const int COL = 3;

    int sumROW[ROW] = {};// Для записи сумм в строках
    int maxSum = 0; // Для записи максимальной суммы
    int maxROW = 0;// для записи строки с макс суммой

    int arr[ROW][COL];

    for (int i = 0; i < ROW; i++)
    {
    for (int j = 0; j maxSum)
    {
    maxSum = sumROW[i]; // нахождение макс суммы
    maxROW = i+1; // нахождение строки с макс суммой
    }
    }

    cout << "Сумма элементов "<<i + 1 << "-й строки: " << sumROW[i] << endl;
    }
    cout << endl;
    cout << "Максимальная сумма элементов " << maxSum << " в строке "<< maxROW << endl;
    }

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

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