Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 13.06.2022
Сообщений: 7
1

Создать квадратную матрицу, вычислить сумму значений по периметру

13.06.2022, 16:33. Показов 203. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Моё решение:

#include <iostream>
#include <ctime>
using namespace std;

int PerSum(int* x, int n)
{

cout << "Матрица:" << endl;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cout << x[n][&n] << "\t";
}
cout << endl;
}
int sum = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i == 0 || i == n - 1)
{
if (j == 0 || j == n - 1)
{
sum += x[i][&j];
}
}
}
}
cout << "S=" << sum;
return 0;
}
int main()
{
setlocale(LC_ALL, "ru");
srand(time(NULL));
int n;
cout << "Введите размер матрицы:" << endl;
cin >> n;
int** matr = new int* [n];

for (int i = 0; i < n; i++)
{
matr[i] = new int[n];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
matr[n][n] = rand() % 10;
}
}
PerSum(&matr[n][n], n);
}
После ввода размера матрицы программа завершается, в visual studio срабатывает какое то исключение (при том что я вроде бы все исключения отключил)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2022, 16:33
Ответы с готовыми решениями:

ВВести квадратную матрицу , вычеслить сумму елементов стоящих по периметру матрицы.Если S>0, вывести исходную матрицу и елементы первой и последней с
ВВести квадратную матрицу , вычеслить сумму елементов стоящих по периметру матрицы.Если S&gt;0,...

Заполнить квадратную матрицу числами по периметру
Уважаемые форумчане такой вопрос нужно вывести и заполнить квадрат 5x5 цифрами. По середине должны...

Сформировать квадратную матрицу и вычислить сумму элементов
Сформировать квадратную матрицу размера n*n, n=30 по заданному образцу. В полученной матрице...

Создать квадратную матрицу порядка n, заполненную случайными действительными числами. Найти наибольшее из значений
Создать квадратную матрицу порядка n, заполненную случайными действительными числами. Найти...

1
1709 / 1109 / 337
Регистрация: 25.01.2019
Сообщений: 2,910
13.06.2022, 20:35 2
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <ctime>
using namespace std;
 
/*
int PerSum(int* x, int n)
{
 
    cout << "Матрица:" << endl;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            cout << x[n][&n] << "\t"; //      0_o
        }
        cout << endl;
    }
    int sum = 0;
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
            if(i == 0 || i == n - 1)
            {
                if(j == 0 || j == n - 1)
                {
                    sum += x[i][&j];  //      0_o
                }
            }
        }
    }
    cout << "S=" << sum;
    return 0;
}*/
 
int PerSum(int** mx, size_t n)
{
    if(n == 1)
        return mx[0][0];
 
    int sum = 0;
    size_t e { n - 1 };
 
    for(size_t i { 0 }; i < n; ++i)
        sum += (mx[i][0] + mx[i][e]);
 
    for(size_t i { 1 }; i < e; ++i)
        sum += (mx[0][i] + mx[e][i]);
 
    return sum;
}
 
void prnt(int** mx, size_t n)
{
    for(size_t i { 0 }; i < n; ++i)
    {
        for(size_t j { 0 }; j < n; ++j)
            std::cout << mx[i][j] << "\t";
        std::cout << "\n";
    }
}
 
int main()
{
    setlocale(LC_ALL, "ru");
    srand(time(NULL));
    int n;
    cout << "Введите размер матрицы:" << endl;
    cin >> n;
    int** matr = new int*[n];
 
    for(int i = 0; i < n; i++)
    {
        matr[i] = new int[n];
    }
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < n; j++)
        {
        //  matr[n][n] = rand() % 10;
            matr[i][j] = rand() % 10;
        }
    }
 
//  PerSum(&matr[n][n], n); //0_o
    
    prnt(matr, n);
    std::cout << "\nRes: " << PerSum(matr, n);
    
    for(size_t x { 0 }; x < n; ++x)
        delete [] matr[x];
    delete [] matr;
    
    return 0;
}
Цитата Сообщение от Tailbone Посмотреть сообщение
(при том что я вроде бы все исключения отключил)
0_о

Добавлено через 12 минут
Ваще лучше сразу углы впихнуть чтоб два цыкла не бегать
C++
1
2
3
4
5
    size_t e { n - 1 };
    int sum { mx[0][0] + mx[0][e] + mx[e][0] + mx[e][e] };
 
    for(size_t i { 1 }; i < e; ++i)
        sum += (mx[0][i] + mx[e][i] + mx[i][0] + mx[i][e]);
0
13.06.2022, 20:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2022, 20:35
Помогаю со студенческими работами здесь

Дано квадратную целочисленную матрицу порядка N. Найдите сумму значений элементов, находящихся в заштрихованной части
Дано квадратную целочисленную матрицу порядка N. Найдите сумму значений элементов, находящихся в...

Сформировать квадратную матрицу и вычислить сумму последних трех столбцов
по заданному образцу. В полученной матрице найти сумму элементов последних трех столбцов:...

Выделить наиболее подходящую квадратную матрицу и вычислить сумму элементов ее главной диагонали
Дана матрица M*N. Выделить в ней наиболее подходящую квадратную матрицу и вычислить сумму элементов...

Сформировать квадратную матрицу по заданному образцу, вычислить в ней сумму элементов 3-го столбца
Здравствуйте! Можете помочь мне решить матрицу? (Заранее спасибо!) Сформировать квадратную матрицу...

Создать квадратную матрицу, сформировать новую матрицу такой же размерности путём транспонирования исходной
Создать квадратную матрицу размерности (30, 30). Заполнить её случайными целыми числами из...

Сформировать матрицу из случайных значений, подсчитать сумму её элементов, вывести матрицу и сумму на экран
Задание: Создать двумерный массив случайных чисел А.Найти сумму элементов массива.Вывести массив...


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

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