Заполнение матрицы змейкой - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Сколько мучался. Никак не могу понять как организовать заполнение массива таким образом. Если кому нетрудно, хотя бы натолкните на мысль.

Решение задачи: «Заполнение матрицы змейкой»

textual
Листинг программы
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
int main()
{
    int n;
    cout << endl << "N=? (from 2 to 100): ";
    cin >> n;
    int mas[100][100];
    for (int i = 0; i < n; i++)
    {
        for (int j = n-1; j > -1; j--)
        {
            if ((i + j) < n)
            {
                mas[i][j] = 0.5 * (i + j + 1) * (i + j + 2) + 
                            ((i + j) % 2 == 0 ? -j : -i);
            }
            else
            {
                int p = n - i - 1, q = n - j - 1;
                mas[i][j] = n * n + 1 - 
                            (0.5 * (p + q + 1) * (p + q + 2) + 
                            ((p + q) % 2 == 0 ? -q : -p));
            }
            cout << mas[i][j] << "\t";
        }
        cout << endl;
    }
    _getch();
    return 0;
}

Объяснение кода листинга программы

  1. В начале программы пользователю предлагается ввести число N от 2 до 100, которое определяет размер матрицы.
  2. Затем определяется массив mas размером 100x100 для хранения заполненной матрицы.
  3. Далее происходит заполнение матрицы по определенному алгоритму:
    • Внешний цикл for перебирает все строки матрицы от 0 до N-1.
    • Внутренний цикл for перебирает все столбцы матрицы от N-1 до 0.
    • Если сумма индексов текущей строки и столбца больше N-1, то значение элемента матрицы вычисляется как 0.5 (i + j + 1) (i + j + 2) + ((i + j) % 2 == 0 ? -j : -i).
    • Если сумма индексов текущей строки и столбца равна N-1, то значение элемента матрицы вычисляется как nn+1 - (0.5 (p + q + 1) * (p + q + 2) + ((p + q) % 2 == 0 ? -q : -p)), где p = N-i-1, q = N-j-1.
    • Значение элемента матрицы выводится на экран.
  4. После заполнения матрицы программа ожидает нажатия клавиши и завершается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы