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

Задача:

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

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

первое:


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

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

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


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

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

Весь код:


#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");
}
}

1 Response

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