Программирование C++.
Дана целочисленная прямоугольная матрица. Найти разность сумм элементов на главной и побочной диагоналях.
Ответы
Ответ дал:
1
матрица не может быть прямоугольной так иначе будет не понятно что подразумевается под диагональю
#include<iostream>
#include<vector>
int main() {
int n;
std::cin>>n;
std::vector<std::vector<int>> matrix(n);
for (int i =0;i<n;++i) {
for (int j =0;j<n;++j) {
int elem;
std::cin>>elem;
matrix[j].push_back(elem);
}
}
int first_diag = 0;
int second_diag = 0;
for (int i = 0;i<n;++i) {
first_diag+=matrix[i][i];
second_diag += matrix[i][n-i-1];
}
int res = 0;
res = first_diag - second_diag;
std::cout<<res;
}
#include<iostream>
#include<vector>
int main() {
int n;
std::cin>>n;
std::vector<std::vector<int>> matrix(n);
for (int i =0;i<n;++i) {
for (int j =0;j<n;++j) {
int elem;
std::cin>>elem;
matrix[j].push_back(elem);
}
}
int first_diag = 0;
int second_diag = 0;
for (int i = 0;i<n;++i) {
first_diag+=matrix[i][i];
second_diag += matrix[i][n-i-1];
}
int res = 0;
res = first_diag - second_diag;
std::cout<<res;
}
XxXJa6uArXxX:
странно, все равно 0
#include<iostream>
#include<vector>
int main() { //мать его отступы, глаза кровоточат,
//переноси скобки всегда на новую строку
int n;
std::cin>>n; //нахрена постоянно пользовать обращение через namespace?!
//Это не огромный проект, тут нет кастомный namespace
//либо подключай весь std, либо конкретные функции и классы
std::vector<std::vector<int>> matrix(n); //см строку 15
for (int j =0;j<n;++j) {
int elem; //создаешь каждый раз новую переменную для новой ячейки?
//нехочешь вынести инстанс за пределы циклов?
std::cin>>elem; //снова через std
matrix[j].push_back(elem); //строка 15, почему бы не зарезервировать
//в векторе двумерную матрицу?
//наверное по тому, что тут начинаются классы,
//операторы new и конструкторы, а это слишком сложно,
//используй классические динамические массивы
}
}
int first_diag = 0; //Совет, лучше называть переменную слитно, но каждое новое слово,
//с вверхнего регистра, то есть к примеру firstDialog, читается проще
int second_diag = 0;
for (int i = 0;i<n;++i) { //снова, где скобка?!
first_diag+=matrix[i][i]; //тут же обращаемся к матрице по индексу и ряда и столбца,
//снова смотри 15 строку
second_diag += matrix[i][n-i-1];
}
res = first_diag - second_diag;
std::cout<<res;
//Где что б его return 0?! Ты имплеметировал функцию INT MAIN, она должна возращать значение!!!
}
Вас заинтересует
10 месяцев назад
10 месяцев назад
1 год назад
1 год назад
5 лет назад
5 лет назад
7 лет назад