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

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

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

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

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

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

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

117 думки про "Завдання: Двумерные массивы 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 Строк = 2;
      Const INT Стовп = 3;
      int array[хід][stolb] = {};
      ІНТ isumm[хід] = {};
      ІНТ Ізюм[stolb] = {};
      INT s(0), вулиця(0);

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

      for (int s = 0; s < хід; s )

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

      }
      cout << endl;
      }

      for (int s = 0; s < хід; s )
      {
      for (INT = вул 0; вулиця < stolb; вул ++)
      {
      cout <<setw(5)<< array[s][вулиця];
      isumm[s]+= масив[s][вулиця];
      Ізюм[вулиця]+= масив[s][вулиця];
      }
      cout << endl;

      cout << endl;

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

      }
      for (int i = 0; i < stolb; i )
      {
      cout << i + 1 << "-ый столбец cумма " << Ізюм[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 )
    {
    підсумовувати + = обр[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 )
    {
    підсумовувати + = обр[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 )
      {
      підсумовувати + = обр[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 )
      {
      підсумовувати + = обр[j][i];
      }
      cout<<sum<<endl;
      }
      }

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

  6. #include
    #include
    using namespace std;

    void main()
    {
    setlocale(LC_ALL, “RU”);
    srand(time(NULL));
    константні ІНТ ЛАВ = 5;
    Const INT COLS = 4;
    ІНТ г = 0;
    INT х = 0;
    ІНТ мс [ЛАВ][COLS]{};
    INT ms2 [ЛАВ]{};
    for (int i = 0; i < ЛАВ; i )
    {
    for (int j = 0; J г)
    {
    г = MS2[i];
    х = я;
    }
    }
    }
    for (int i = 0; i < ЛАВ; i )
    {
    for (int j = 0; j < COLS; j )
    {
    cout << Міссісіпі[i][j] << "\t";
    }
    cout << "|" << "сумма " << i + 1 << " строки = " << MS2[i] << endl;
    }
    cout << "максимальное значение у " << x + 1 << " строки – " << від << endl;
    }

  7. задача №1:
    #include
    using namespace std;

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

    const int RowCount = 3;
    const int ColumnCount = 4;

    int ourMatrix[RowCount][ColumnCount] = {};

    for (int rowNum = 0; rowNum < RowCount; rowNum )
    {
    for (int columnNum = 0; columnNum < ColumnCount; columnNum )
    {
    ourMatrix[rowNum][columnNum] = rowNum + columnNum;
    cout << ourMatrix[rowNum][columnNum] << " ";
    }
    cout << endl;
    }
    return 0;
    }

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

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