Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Сформировать квадратную матрицу порядка N.


Автор: Denlp 26.1.2010, 11:40
Доброго времени суток!
Помогите, пожажуйста, решить задачку.
Задача:
Сформировать квадратную матрицу порядка N по заданному образцу:
| n     0     0    ...    0     0     0 |
|n-1   n     0    ...    0     0     0 |
|n-2  n-1   n    ...    0     0     0 |
| ...    ...    ...   ...    ...    ...    ... |
| 2     3     4    ...   n-1   n     0 |
| 1     2     3    ...   n-2  n-1   n |


Заранее спасибо за помощь.

Автор: Luyan 26.1.2010, 12:35
Код

#include <iostream>
using namespace std;
int main()
{
        int i, j, n = 10;
        int **M = new int *[n];
        for(i = 0; i < n; i++)
              M[i] = new int [n];

        for (i = 0; i < n; i++)
           for (j = 0; j < n; j++)
                   M[i][j] = 0;

        for (i = 0; i < n; i++)
            for (j = 0; j < i+1; j++)
               M[i][j]= (n-i+j)%(n+1);

        for (i = 0; i < n; i++)
        {
            for (j = 0; j < n; j++)
                 cout << M[i][j] << ' ';
            cout << endl;
        }
        for(i = 0; i < n; i++)
                delete [] M[i];
        delete[] M;

        return 0;
}

Автор: Denlp 26.1.2010, 14:15
Luyan, спасибо за помощь, но можно ли как то обойтись без int **M = new int *[n];
(я про знак "*")

Автор: Luyan 26.1.2010, 14:34
Код

#include <iostream>
using namespace std;

int main()
{
    int const n = 10; // порядок матрицы
    int M[n][n];
    int i, j;
    for (i = 0; i < n; i++)
        for (j = 0; j < n; j++)
            M[i][j] = 0;
    for (i = 0; i < n; i++)
        for (j = 0; j < i+1; j++)
            M[i][j]= (n-i+j)%(n+1);
        
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < n; j++)
            cout << M[i][j] << ' ';
        cout << endl;
    }
    return 0;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)