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

Динамическая матрица

12.05.2018, 13:22. Показов 1567. Ответов 6

Author24 — интернет-сервис помощи студентам
Добрый день, у меня такая проблема. Даны 3 матрицы 4х4, 5х5, 7х7. Надо написать одну общую функцию для этих матриц и вызывать ее в main. Я создал динамический массив, а подключить его не могу. Вот код:

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <iostream>
#include <conio.h>
#include <string.h>
#include <windows.h>
 
using namespace std;
 
 
int matr(int **a)
{
    setlocale(LC_ALL, "Rus");
    int N = 0;
    int PA = 0;
    new int* [N];
    for (int i = 0; i <= N; i++)                                                                            //инициализация массива
    {
        a[i] = new int[N];
    }
 
    cout << "Введите массив 5x5, 4х4 или 7х7: ";                                                      //заполнение массива
    cin >> N;
    while ((N != 5) && (N != 4) && (N != 7))
    {
        cout << "введите правильный массив: ";
        cin >> N;
    }
 
    for (int i = 0; i <= N; i++)
    {
        for (int j = 0; j <= N; j++)
        {
            cout << "введите " << "[" << i << "]" << "[" << j << "]" << " элемент матрицы: ";
            cin >> **(a + i * N + j);
        }
    }
 
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            if (i == j && a[i][j] > 0)
                PA = PA * a[i][j];
        }
    }
    cout << "\n\nПроизведение положительных элементов главной диагонали матрицы: " << PA << endl;
 
    for (int i = 0; i < N; i++)
    {
        delete[] a[i];
    }
    delete[] a;
    return **a;
}
 
 
 
int main(int **a)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    int A[5][5], B[7][7], C[4][4];
    **a = A[5][5];
    matr(a);
    //matr();
    //matr();
    _getch();
}
Кто знает подскажите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2018, 13:22
Ответы с готовыми решениями:

динамическая матрица
в общем, надо сделать матрицу доступа, её размер в исходном состоянии 1х1, и потом увечивается,...

Динамическая матрица С++
Напишите программу, которая принимает с клавиатуры число N и M, создает матрицу размера N на M,...

Динамическая матрица
Здравствуйте, помогите найти ошибку в динамической матрице: у меня почему-то вызывается...

Динамическая матрица
помогите написать 2 проги 1) 2) по критериям: 1)Динамические массивы обязательны 2)работать...

6
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.05.2018, 15:32 2
Андрей1337, напишите оригинал условия задачи
0
4063 / 3317 / 924
Регистрация: 25.03.2012
Сообщений: 12,483
Записей в блоге: 1
12.05.2018, 15:33 3
Цитата Сообщение от Андрей1337 Посмотреть сообщение
new int* [N];
что за бред?
Может имелось в виду a=new int* [N] ? Но так тоже писать нельзя.
0
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 17
12.05.2018, 15:58  [ТС] 4
Добавлено через 1 минуту
Kuzia domovenok, да, имелось в виду именно то, но vs писал ошибку, потому что надо было передать матрицу как параметр и вернуть ее, а два раза вызывать нельзя

Добавлено через 18 секунд
Yetty, Даны матрицы
A
(5×5),
B
(7×7),
C
(4×4). Вычислить значение выражения PA+PB–PC, где PA(PB, PC) —произведение положительных элементов главной диагонали матрицы A(B, C).
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.05.2018, 16:34 5
Андрей1337, само выражение PA+PB–PC не вычислял, т.к. неизвестно что подставлять, если положительных на главной диагонали нет.

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
 
double Mult (double** x, int n)
{
    double mult=1.0;
    for (int i = 0; i < n; i++)
    if (x[i][i]>0) mult*=x[i][i];
    return mult;
}
 
int Count (double** x, int n)
{
    int count=0;
    for (int i = 0; i < n; i++)
    if (x[i][i]>0) count++;
    return count;
}
void Random (double** x, int n)
{
    for (int i = 0; i < n; i++)    
    for (int j = 0; j < n; j++) 
    x[i][j]=rand()%19 -9;   
}
 
void Print (double** x, int n)
{
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++) 
    cout <<setw(3)<<x[i][j]<<" ";   
    cout << endl;
    }
}
int main()
{
    srand((int)time(0));
    int nA=5, nB=7, nC=4;
    double **A = new double*[nA]; 
    for (int i = 0; i < nA; i++)
      A[i]=new double[nA];
    double **B = new double*[nB]; 
    for (int i = 0; i < nB; i++)
      B[i]=new double[nB];
    double **C = new double*[nC]; 
    for (int i = 0; i < nC; i++)
      C[i]=new double[nC]; 
    Random (A, nA);  
    Print (A, nA);
    if (Count(A, nA)) cout <<"mult="<<Mult(A, nA)<<endl;
    else cout <<"Positive elements in main diagonal are absent"<<endl;
    Random (B, nB);  
    Print (B, nB);
    if (Count(B, nB)) cout <<"mult="<<Mult(B, nB)<<endl;
    else cout <<"Positive elements in main diagonal are absent"<<endl;
    Random (C, nC);  
    Print (C, nC);
    if (Count(C, nC)) cout <<"mult="<<Mult(C, nC)<<endl;
    else cout <<"Positive elements in main diagonal are absent"<<endl;
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 05.04.2015
Сообщений: 17
12.05.2018, 16:41  [ТС] 6
Yetty, большое спасибо, а не моги бы Вы указать коментарии еще?
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
12.05.2018, 16:51 7
Цитата Сообщение от Андрей1337 Посмотреть сообщение
Yetty, большое спасибо, а не моги бы Вы указать коментарии еще?
Там вроде всё понятно (просто не знаю, что комментировать). Задавайте вопросы, если что не ясно.
0
12.05.2018, 16:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.05.2018, 16:51
Помогаю со студенческими работами здесь

Динамическая матрица ООП
Добрый день, проблема заключается в следующем. Никак не могу разобраться с заданием Задание:...

Объясните динамическая матрица
Здравствуйте. Объясните пожалуйста вот эти строчки кода. int **matrix = new int * ; for ( int...

Динамическая верхнетреугольная матрица
Нужно задать верхнюю треугольную матрицу размера 3х3. Размер строк задаётся динамически. int...

Двумерная динамическая матрица
в общем помогите, надо написать двумерный массив(int) динамическим и пару функций к нему: 1....


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

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

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