#include <iostream>
using namespace std;
int main() {
int sum4=0;
const int n=4;
int arr[n][n]={{-1,8,9,11},{5,6,7,-10},{3,-3,2,5},{-3,9,3,2}};
for(int i=0;i<=3;i++)
{
for(int j=0;j<=3;j++)
{
if(n==i+j-1)
{
sum4=sum4=arr[i][j];
}
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << sum4;
return 0;
}
ответ должен быть равен 12
C/C++
Код на c++ выводит неправильную сумму элементов побочной диагонали двумерного массива
В предоставленном коде на C++ есть несколько проблем, которые приводят к тому, что он печатает неправильную сумму элементов боковой диагонали двумерного массива.
Во-первых, переменная n используется в условии n==i+j-1, когда должно быть n-1==i+j. Это происходит потому, что боковая диагональ состоит из элементов, где индекс строки плюс индекс столбца равны n-1 (при условии нулевого индекса).
Во-вторых, в строке, где вычисляется sum4, допущена опечатка. Вместо того чтобы добавить arr[i][j] к sum4, он присваивается к sum4 дважды, что приводит к неправильной сумме.
Вот исправленный код:#include <iostream>
using namespace std;
int main() {
int sum4 = 0;
const int n = 4;
int arr[n][n] = {{-1, 8, 9, 11}, {5, 6, 7, -10}, {3, -3, 2, 5}, {-3, 9, 3, 2}};
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (n - 1 == i + j) { // condition for side diagonal
sum4 += arr[i][j]; // corrected sum calculation
}
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << sum4;
return 0;
}
Во-первых, переменная n используется в условии n==i+j-1, когда должно быть n-1==i+j. Это происходит потому, что боковая диагональ состоит из элементов, где индекс строки плюс индекс столбца равны n-1 (при условии нулевого индекса).
Во-вторых, в строке, где вычисляется sum4, допущена опечатка. Вместо того чтобы добавить arr[i][j] к sum4, он присваивается к sum4 дважды, что приводит к неправильной сумме.
Вот исправленный код:#include <iostream>
using namespace std;
int main() {
int sum4 = 0;
const int n = 4;
int arr[n][n] = {{-1, 8, 9, 11}, {5, 6, 7, -10}, {3, -3, 2, 5}, {-3, 9, 3, 2}};
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (n - 1 == i + j) { // condition for side diagonal
sum4 += arr[i][j]; // corrected sum calculation
}
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << sum4;
return 0;
}
Максим Лукьянчиков
Спасибо, посмеялся.
Дерзки.азер Дерзки Азер
Спасибо вам!
for (int i = 0; i < n; ++i) {
sum4 += arr[i][n - i - 1];
cout
#include <iostream>
using namespace std;
int main() {
int sum4=0;
const int n=4;
int arr[n][n]={{-1,8,9,11},{5,6,7,-10},{3,-3,2,5},{-3,9,3,2}};
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(i+j == n-1) {
sum4 += arr[i][j];
}
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << sum4;
return 0;
}
using namespace std;
int main() {
int sum4=0;
const int n=4;
int arr[n][n]={{-1,8,9,11},{5,6,7,-10},{3,-3,2,5},{-3,9,3,2}};
for(int i=0;i<n;i++) {
for(int j=0;j<n;j++) {
if(i+j == n-1) {
sum4 += arr[i][j];
}
cout << arr[i][j] << " ";
}
cout << endl;
}
cout << sum4;
return 0;
}
Похожие вопросы
- Помогите пожалуйста написать код на c++, выводящий имя, фамилию и дату рождения нескольких человек
- Отразить двумерный массив с размером m x n относительно побочной диагонали
- Заполнить двумерный массив 5*3 и найти строку с максимальным произведением элементов. C++
- Написать фрагмент кода, где формируется двумерный массив, элементы которого могут быть тру и фолс
- Написать программу на C/C++. Найти количество отрицательных элементов под побочной диагональю.
- Двумерные массивы C++, ничего не понимаю((( Нужна помощь
- Двумерный массив C++
- C++ программирование с использованием динамических двумерных массивов
- В одномерном массиве, состоящем из n вещественных элементов, вычислить сумму элементов массива
- Минимакс двумерного массива, c#