0 / 0 / 0
Регистрация: 14.05.2019
Сообщений: 15
1

Выяснить, есть ли на главной диагонали матрицы A (n × n) единичные элементы

28.05.2019, 21:27. Показов 945. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввести натуральное число n. Выяснить, есть ли на главной диагонали матрицы A (n × n) единичные элементы, если A (i, j) = i × cos (j/p).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2019, 21:27
Ответы с готовыми решениями:

Выяснить, есть ли на главной диагонали матрицы единичные элементы
Ввести натуральное число n. Выяснить, есть ли на главной диагонали матрицы A (n x n) единичные...

Если в матрице A (3×7) есть элементы больше 10, то найти сумму главной диагонали
Если в матрице A (3×7) есть элементы больше 10, то найти сумму главной диагонали Элемент...

Умножьте все элементы матрицы на максимум главной диагонали. Вывести максимум главной диагонали
Умножьте все элементы матрицы на максимум главной диагонали. Вывести максимум главной диагонали.

Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и ниже побочной диагонали
Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие одновременно выше главной...

5
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
28.05.2019, 23:31 2
можно обойтись без матрицы, просто сравнить в цикле элементы диагонали с единицей.
0
0 / 0 / 0
Регистрация: 14.05.2019
Сообщений: 15
29.05.2019, 19:26  [ТС] 3
Не могу понять, как сделать так, что бы программа проверяла главную диагональ матрицы и выводила сообщение(моя ошибка в том, что он проверяет каждый элемент и выводит сообщение для каждого элемента, а надо чтобы вывел только одно сообщение)


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream> 
#include <cmath> 
using namespace std; 
int main() 
{ 
setlocale(LC_ALL, "RUS"); 
int i, j, n; 
double** A; 
const double Pi = 3.14159; 
int flag; 
cout « "Введите число n" « endl; 
cin » n; 
A = new double* [n]; 
for (int k = 0; k < n; k++) 
A[k] = new double[n]; 
 
for (int i = 0; i < n; i++) 
{ 
for (int j = 0; j < n; j++) 
{ 
A[i][j] = i * cos(j / Pi); 
cout « A[i][j] « " "; 
} 
cout « endl; 
} 
 
 
for (int i = 0; i < n; i++) 
{ 
if (A[i][i] == 1) 
cout « " A(" « i « "," « i « ")=" « A[i][i]; 
else if (A[i][i] != 1) 
cout « "Елементов равных единице не обнаружено"; 
} 
 
for (int k = 0; k < n; k++) 
delete[] A[k]; 
delete[] A; 
cout « endl; 
system("pause"); 
}
0
163 / 70 / 39
Регистрация: 28.05.2019
Сообщений: 241
29.05.2019, 19:32 4
C++
1
2
3
4
5
6
7
8
9
10
11
bool ones = false;
for (int i = 0; i < n; i++) 
{ 
    if (A[i][i] == 1)
    {
        cout << " A(" << i << "," << i << ")=" << A[i][i];
        ones = true;
    }
}
if (!ones)
    cout << "Элементов равных единице не обнаружено" << endl;
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,714
29.05.2019, 19:33 5
C++
1
2
3
4
5
6
7
8
9
10
11
int i = 0;
for (; i < n; i++) 
{ 
    if (A[i][i] == 1) 
    {
         cout << " A("  <<  i  <<  ","  <<  i  <<  ")=1"; 
         break;
    }
}
if (i==n) 
    cout << "Элементов равных единице не обнаружено";
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
29.05.2019, 20:46 6
Alina_B_, в условии нет требования создать и заполнить матрицу. задача состоит выяснить, имеются ли в матрице, заполненной по правилу A[i][j]=i*cos (j/PI) единицы на главной диагонали.

на главной диагонали i=j, A[i][i]=i*cos (i/PI)

для того, чтобы такие элементы были, нужно чтобы при i=1 cos(1/PI)=1 или при i=2 cos(2/PI)=1/2 или при i=3 cos(3/PI)=1/3 и т.д., но это не так.
задачу решал бы так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream> 
using namespace std;
 
int main()
{
    int n;         
    cout << "n="; cin >> n;
    cout << "NO\n";
    
system("pause");
return 0;
}
код для проверки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath> 
using namespace std;
 
int main()
{    
    int n, k=0;
    cout << "n="; cin >> n; 
    for (int i=1; i<n; i++)
    if (fabs(i*cos(i/M_PI)-1.0)<1e-9) {k=1;cout << "YES\n";break;}
    if (!k) cout << "NO\n";
    
system("pause");
return 0;
}
0
29.05.2019, 20:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2019, 20:46
Помогаю со студенческими работами здесь

Вычислить среднее арифметическое побочной диагонали матрицы, и заменить им элементы ниже главной диагонали
Вычислить среднее арифметическое элементов, находящихся на побочной диагонали двумерного массива и...

Заменить элементы главной и побочной диагоналей матрицы на минимальный элемент ниже главной диагонали
В квадратной матрице А заменить элементы главной и побочной диагоналей на минимальный элемент,...

Заменить элементы главной диагонали матрицы нулями и найти максимальный элемент ниже побочной диагонали
Есть пример для решения другой задачи(она находит суму всех элементов каждой строки и выводит...

Если на главной диагонали матрицы есть число -1, то заменить нижнюю часть диагонали на число 2
Дано матрица!Если по главному диагоналу есть число &quot;-1&quot;,то заменить нижний часть диагонала на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru