Основи програмування на С ++ для початківців

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

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

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

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

3) Заповнити двовимірний масив випадковими числами від 10  до 100. Порахувати суму елементів окремо в кожному рядку і визначити номер рядка,  в якій ця сума максимальна.

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

118 думки про "Завдання: Двумерные массивы C

  1. Во второй задаче в массив rowSum будет записываться сумма значений, которые хранятся в строках двумерного массива ourMatrix. Отдельно по каждой строке.
    В массив columnSum будет записана сумма по столбцам двумерного массива ourMatrix.

    В третьей задаче – аналогічно. В ячейки rowSum запишется сумма по строкам двумерного массива ourMatrix. Далее значение элементов rowSum будут сравнены между собой и будет найдена строка с максимальной суммой.

  2. Каюсь, я не вчитывался в решения, просто посмотрел, что какие-то лишние массивы есть.
    Задача (дублирую чтобы перед глазами была): Порахувати суму елементів окремо в кожному рядку і визначити номер рядка, в якій ця сума максимальна.

    // функция вычисления суммы строки
    int rowsum(int **a, INT м, int i) {
    int sum = 0;
    for (int j = 0; j < м; ++j)
    сума + = а[i][j];
    повернення суми;
    }

    INT ** обр; // твой массив
    Int N, м; // размер массива

    int imaxsum = 0, maxsum = rowsum(0);
    // номер строки с максимальной суммой и сумма

    for (int i = 1; i maxsum)
    maxsum = sum, imaxsum = i;
    }

    Разве так не лучше?

  3. мне не совсем понятно, как ты вызываешь функцию и передаешь в неё 0: maxsum = rowsum(0);
    В заголовке ведь определенно три параметра
    int rowsum(int **a, int m, int i)

    1. Ну я код схемотично описал, не проверял я его даже близко.
      Правильно так:
      maxsum = rowsum(a, м, 0);

      А взагалі, код порезался весь что-то

      1. пиши код в тегах cоde /cоde
        надо будет узнать, как сделать и добавить к комментариям кнопку для написания кода


  4. int rowsum(int **a, int m, int i) {
    int sum = 0;
    for (int j = 0; j < m; ++j) sum += a[i][j]; return sum; } int main() { int **arr; // твой массив int n, m; // размер массива //... int imaxsum = 0, maxsum = rowsum(a, m, 0); // номер строки с максимальной суммой и сумма for (int i = 1; i < n; ++i) int sum = rowsum(a, m, i); if (sum > maxsum)
    maxsum = sum, imaxsum = i;
    }

    Написал в тегах

  5. Вот тоже решение 2-ой задачи без лишних массивов.

    #include
    using namespace std;

    int main()
    {
    int nLine, nRow, nSumLine=0, nSumRow=0;

    cout << nLine;

    cout << nRow;

    int aArray[nLine][nRow];

    for (int i=0; i < nLine; i++)
    {
    for (int j=0; j < nRow; j++)
    {
    cout << "Введите элемент " << j+1 << " строки " << i+1 <> aArray[i][j];
    }
    }

    for (int i=0; i<nLine; i++)
    {
    nSumLine = 0;
    for (int j=0; j<nRow; j++)
    {
    cout << "[" << i <<"]["<< j <<"]="<<aArray[i][j]<<" ";
    nSumLine +=aArray[i][j];
    }
    cout << "Сумма элементов в строке " << i+1 <<" = " << nSumLine << "\n";
    }

    for (int j=0; j<nRow; j++)
    {
    nSumRow = 0;
    for (int i=0; i< nLine; i++)
    {
    nSumRow +=aArray[i][j];
    }
    cout << " "<< j+1 << " = " << nSumRow << " ";
    }

    cout << "\n";

    return 0;
    }

  6. А я вообще так вывел


    for (int i = 0; i < 3; i++)
    {
    for (int j = 0; j < 3; j++)
    {
    third = third + first[i][j];
    fourth = fourth + first[j][i];
    };
    std::cout << "sum in string " << i + 1 << " = " << third << std::endl;
    third = 0;
    std::cout << "sum in colunm " << i + 1 << " = " << fourth << std::endl;
    fourth = 0;
    };

залишити коментар

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *