C++: Антисимметричная матрица

Задача:

Напишите программу которая создает антисимметричную матрицу размера N, заполненную случайными числами. Антисимметричная матрица: Aij=-Aji

Алгоритм примерно такой: Спрашиваем у пользователя, какого размера матрицу он бы хотел видеть. Стандартно всё заполняем случайными числами. После этих операций инициируем еще циклы, в которых изменяем значения

первое:

[cpp]

if(i==j){
numbers[i][j]=0;
}

[/cpp]

Сделать по главной диагонали нули.

И нужно еще сделать симметрию:

[cpp]

numbers[i][j]=-numbers[j][i];

[/cpp]

Это просто транспонированная матрица, к которой прибавлен знак минус.

Весь код:

[cpp]

#include «stdafx.h»

#include <stdio.h>
#include <locale.h>
#include <math.h>
#include <stdlib.h>

int main() {

int N;
printf(«Vvedite chislo N:\n»);
scanf(«%d», &N);
int tmp;
int numbers[100][100];
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
numbers[i][j] = rand()%10;

}
}
for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
if(i==j){
numbers[i][j]=0;
}
numbers[i][j]=-numbers[j][i];
}
}
printf(«\nMatrica:\n»);

for (int i=0; i<N; i++) {
for (int j=0; j<N; j++) {
printf(«%3d «, numbers[i][j]);
}
printf(«\n»);
}
}

[/cpp]

1 Response

Добавить комментарий