1 Востаннє редагувалося Replace (03.11.2012 12:44:04)

Тема: Заповнення елементів матриці (вище та нижче від діагоналей)

Заповнити сектори матрицi, якi лежать вище i нижче вiд головної та побiчної дiагоналей, значеннями вектора b1, b2, ... , b32, вiд лiвого верхньго кута вправо - вниз. Решта матрицi заповнити нулями.

2 Востаннє редагувалося Ярослав (01.11.2012 18:44:23)

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Я б радив Вам відредагувати тему згідно із правилами форуму.

Опишіть детальніше завдання. Матриця 3 х 3, 4 х 4, чи n x n? Це

b1, b2, ... , b32

варто розуміти як 32 сектора матриці?

3

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

це повинно бути nxn

Post's attachments

l09_e022.gif 2.13 kb, 375 downloads since 2012-11-01 

4

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Kato написав:

це повинно бути nxn

32 на 32?

5

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Та динамічно створюється вона за параметром N.

6

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

HetmanNet написав:
Kato написав:

це повинно бути nxn

32 на 32?

Ні.. n x n, універсальна, тобто вміти визначати головну і побічну діагональ самотужки.

7

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

d4rkc10ud написав:

Та динамічно створюється вона за параметром N.

Так навіть цікавіше :)

8

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

В зображенні яке я виклав вгорі числа 1-32 індекси b.

9

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Kato, а ви на програміста вчитесь?
P.S. Правила форуму

Якось так:

#include <stdio.h>
#define N 9
#define M (N * N + 1)/ 2 - N


int main() {
    
    int matrix[N][N];
    int b[M];
    int i, j;
    int counter = 0;
    
    for (i = 0; i < M; i++) {
        b[i] = i + 1;
    }
    
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            matrix[i][j] = 0;
        }
    }
    
    for (i = 0; i < N; i++) {
    
        for (j = i + 1; j < N - i - 1; j++) {
            matrix[i][j] = b[counter++];
        }
    
        for (j = N - i; j < i; j++) {
            matrix[i][j] = b[counter++];
        }
    }
    
    printf("matrix:\n");
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++) {
            printf("%d\t", matrix[i][j]);
        }
        printf("\n");
    }
    
    return 0;
}

10

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Replace Team написав:

Kato, а ви на програміста вчитесь?

Так. І курс.

11

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Тоді ще не пізно змінити спеціальність, але й не пізно наздогнати. Вам вирішувати.

12

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Тоді ще не пізно змінити спеціальність, але й не пізно наздогнати. Вам вирішувати.

Можете порадити з чого починати вивчення мови С?

13

Re: Заповнення елементів матриці (вище та нижче від діагоналей)

Спробуйте кілька книг по C та C++, яку вам легше читати, ту і обирайте. Мені сподобалась книга С. Кочана.
Більше практикуйтесь, вирішуйте різноманітні задачі.

Подякували: Kato1