mstrshulz
?>

Задача С «Симметричная матрица» Дана квадратная матрица. Проверить, является ли она симметричной относительно главной диагонали. Входные данные. Записано число n (0 < n ≤ 100 В следующих n строках записано по n целых чисел от -32768 до 32767. Выходные данные. Вывести YES, если матрица симметрична относительно главной диагонали, иначе вывести NO. Пример входных данных 3 1 2 3 2 4 5 3 5 6 Пример выходных данных YES почему у меня выводит "да" 3 раза??

Информатика

Ответы

Pavel_Olegovna1601
Почему?

Потому что Вы каждый раз, когда матрица симметрична (но не до конца, а на данной итерации), выводите "YES", хотя не знаете, будет ли она симметрична далее.

Как решить?

1. Заведите переменную типа bool:

bool isSymmetrically = true;

2. В теле условия if (a[i][j] != a[j][i]) замените вывод на следующее:

isSymmetrically = false; // матрица не симметрична, можно заканчивать цикл (с

В блоке else:

isSymmetrically = true; // на данном этапе симметрия присутствует

2.1. После вложенного цикла произведите проверку на то, симметрична ли матрица, чтобы в случае несимметричности не продолжать проверку, а сразу сделать вывод:

if (isSymmetrically == false)

{  break;  }

3. После всех циклов вы произвдите следующую проверку:

if (isSymmetrically = true) // если матрица симметрична

{ // вывод YES }

else

{ // вывод NO }

Исправленный код#include <iostream>using namespace std;int main(){    int n = 0;    int a[100][100];    bool isSymmetrically = true;    cin >> n;    for (int i = 0; i < n; i++)    {        for (int j = 0; j < n; j++)        {            cin >> a[i][j];        }        cout << endl;    }    for(int i = 0; i < n - 1; i++)    {        for(int j = i + 1; j < n; j++)        {            if(a[i][j] != a[j][i])            {                isSymmetrically = false;                break;            }            else            {                isSymmetrically = true;            }        }        if (isSymmetrically == false)        {          break;        }    }    if (isSymmetrically == true)    {        cout << "YES" << endl;    }    else    {        cout << "NO" << endl;    }    return 0;}
Некрасов Валентина1097

Первая задача:


var

i:integer;

a: array [1..7] of String;

begin

a[1]:='мама';

a[2]:='ель';

a[3]:='парта';

a[4]:='каникулы';

a[5]:='прыжок';

a[6]:='ура';

a[7]:='прикол';

for i:=1 to 7 do

writeln(a[i],' ', Length(a[i]));

end.


Вторая задача:


var

i, j, c:integer;

a:array [1..8] of integer;

begin

for i:=1 to 8 do

begin

writeln('Введите эл. массива A[', i, ']');

readln(a[i]);

end;

writeln();

for i:=1 to 8 do

write(a[i], ' ');

for i:=1 to 7 do

for j:=i+1 to 8 do

if a[i]>a[j] then

begin

c:=a[i];

a[i]:=a[j];

a[j]:=c;

end;

writeln();

for i:=1 to 8 do

write(a[i], ' ');

end.

Sharmel26

1.

const n=5;

var a:array [1..n] of integer;

i:integer;

begin

write('       Исходный массив: ');

for i:=1 to n do

begin

a[i]:=random(21)-10;

write(a[i]:3,' ');

if a[i] mod 2 = 0 then a[i]:=a[i]-3

end;

writeln;

write('Преобразованный массив: ');

for i:=1 to n do write(a[i]:3,' ')

end.

2.

const n=8;

var a:array [1..n] of integer;

i,s:integer;

begin

write('Массив: ');

for i:=1 to n do

begin

a[i]:=random(21)-10;

write(a[i]:3,' ');

s:=s + a[i]

end;

writeln;

write('Сумма всех элементов массива: ',s)

end.

3.

const n=7;

var a:array [1..n] of integer;

i,p:integer;

begin

p:=1;

write('Массив: ');

for i:=1 to n do

begin

a[i]:=random(21)-10;

write(a[i]:3,' ');

if a[i] > 0 then p:=p * a[i]

end;

writeln;

write('Произведение положительных элементов массива: ',p)

end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задача С «Симметричная матрица» Дана квадратная матрица. Проверить, является ли она симметричной относительно главной диагонали. Входные данные. Записано число n (0 < n ≤ 100 В следующих n строках записано по n целых чисел от -32768 до 32767. Выходные данные. Вывести YES, если матрица симметрична относительно главной диагонали, иначе вывести NO. Пример входных данных 3 1 2 3 2 4 5 3 5 6 Пример выходных данных YES почему у меня выводит "да" 3 раза??
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

AnnaChulyukanova3
azarovaelena19812
slastena69678
schernov
ilkindadashov935232
ТигранКалмыкова
fancy-decor67
gullieta
ridyana504
Kalashnikova
kbndbyb6
Maly01984489
Евгений1286
bel1-79
elenak26038778