• Программирование C++.
    Дана целочисленная прямоугольная матрица. Найти разность сумм элементов на главной и побочной диагоналях.

Ответы 6

  • Спасибо)
    • Автор:

      alia
    • 6 лет назад
    • 0
  • матрица не может быть прямоугольной так иначе будет не понятно что подразумевается под диагональю#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;}
    • Автор:

      aminataij
    • 6 лет назад
    • 0
  • Код говнище просто редкосное, такой др*сни давно не видел, пройдемся по порядку:#include<iostream>#include<vector>int main() { //мать его отступы, глаза кровоточат, //переноси скобки всегда на новую строкуint n;std::cin>>n; //нахрена постоянно пользовать обращение через namespace?! //Это не огромный проект, тут нет кастомный namespace //либо подключай весь std, либо конкретные функции и классыstd::vector<std::vector<int>> matrix(n); //см строку 15
    • Автор:

      potts
    • 6 лет назад
    • 0
  • for (int i =0;i<n;++i) { //отступы, благо ++i, а не i++ for (int j =0;j<n;++j) { int elem; //создаешь каждый раз новую переменную для новой ячейки? //нехочешь вынести инстанс за пределы циклов? std::cin>>elem; //снова через std matrix[j].push_back(elem); //строка 15, почему бы не зарезервировать //в векторе двумерную матрицу? //наверное по тому, что тут начинаются классы, //операторы new и конструкторы, а это слишком сложно,
    • Автор:

      mini
    • 6 лет назад
    • 0
  • //если не умеешь пользоваться, не лезь, //используй классические динамические массивы }}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];}
  • int res = 0;res = first_diag - second_diag;std::cout<<res; //Где что б его return 0?! Ты имплеметировал функцию INT MAIN, она должна возращать значение!!!}
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years