Положительные элементы главной диагонали

Найти положительные элементы главной диагонали квадратной матрицы.

Диагонали выделяют только в том случае, если матрицы квадратные, то есть количество строк равно количеству столбцов. Элементы главной диагонали имеют индексы [1,1], [2,2], … [N,N] (при условии индексации с единицы).

Поскольку первый индекс равен второму, то, перебирая матрицу в цикле, при обращении к элементам главной диагонали достаточно использовать одну переменную счетчик (например, i): имя_массива[i,i].

Если очередной элемент диагонали больше нуля, то выводим его на экран.

Pascal

const
N = 10;
var
arr: array[1..N,1..N] of integer;
i,j: byte;
begin
randomize;
for i:=1 to N do begin // просто заполнение матрицы
for j:=1 to N do begin
arr[i,j] := random(100) - 50;
write(arr[i,j]:4);
end;
writeln;
end;
writeln;
for i:=1 to N do // решение задачи
if arr[i,i] > 0 then
write(arr[i,i]:4);
writeln;
end.



-27 -12 37 -33 4 -44 44 5 21 -11
-46 -18 2 2 31 -36 47 -33 -11 41
-12 47 41 14 25 26 6 22 49 -48
-22 -7 -25 49 -13 -26 13 31 -15 -11
-5 30 31 -26 -48 26 44 1 -49 -4
22 -49 18 -20 -5 -25 0 -8 16 -19
-21 -5 30 -14 27 -35 -34 42 39 21
-2 -24 19 -48 -13 2 -35 44 -1 14
-47 45 -21 29 17 -9 27 -38 25 7
47 -20 -45 -22 -36 -43 12 5 40 -22

41 49 44 25

Язык Си

#include < stdio.h>
#define N 10
main() {
int a[N][N], i, j;
srand(time(NULL));
for (i=0; i< N; i++) {
for (j=0; j< N; j++) {
a[i][j] = rand()%100 - 50;
printf("%4d", a[i][j]);
}
printf("\n");
}
printf("\n");
for (i=0; i< N; i++)
if (a[i][i] > 0) {
printf("%4d", a[i][i]);
}
printf("\n");
}
Python

from random import random
N = 10
a = []
for i in range(N):
z = []
for j in range(N):
n = int(random() * 100) - 50
z.append(n)
print("%4d" % n, end='')
print()
a.append(z)
print()

for i in range(N):
if a[i][i] > 0:
print("%4d" % a[i][i], end='')
print()
КуМир

алг полож элем диаг
нач
цел N=10
цел таб a[1:N,1:N]
цел i, j
нц для i от 1 до N
нц для j от 1 до N
a[i,j] := int(rand(0,100)) - 50
вывод a[i,j]:4
кц
вывод нс
кц
вывод нс

нц для i от 1 до N
если a[i,i] > 0 то
вывод a[i,i], " "
все
кц
вывод нс
кон
Basic-256

N = 10
dim a(N,N)
for i=0 to N-1
for j=0 to N-1
a[i,j] = int(rand*100)-50
print a[i,j]+" ";
next j
print
next i
print

for i=0 to N-1
if a[i,i] > 0 then print a[i,i] + " ";
next i

Оцените статью
Добавить комментарий