Найти сумму под и над главной диагональю ПРИМЕР 1 2 3 4 5 6 7 8 9 над ней будет 2+3+6=11 - правильно, а под 4+7+8=19 , а выдает 15 (7+8) Вот код:`
#include <iostream>
using namespace std;
int main()
{
int S1, S2, i, j, N, a[10][10];
cout<<"N=";
cin>>N;
cout<<"Введите элементы матрицы А \n";
for (i=0; i<N; i++)
for (j=0; j<N; j++)
cin>>a[i][j];
for (S1=i=0; i<N; i++)
for (S2=j=0; j<N; j++)
for (j=0; j<N; j++)
//если элемент лежит выше главной диагонали, то наращиваем сумму
{
if (j>i)
{
S1+=a[i][j];
}
else
{
if (i>j)
{
S2+=a[i][j];
}
}
}
cout<<"S1="<<S1<<endl;
cout<<"S2="<<S2<<endl;
return 0;
}
Проблемный участок был
for (S1=i=0; i<N; i++)
for (S2=j=0; j<N; j++)
for (j=0; j<N; j++)
S2 = j = 0
На каждой итерации цикла for (S1=i=0; i<N; i++)
S2 устанавливалось значение 0, т.е. сумма сбрасывалась
цикл for (j=0; j<N; j++)
Оказался лишним
Надеюсь непротив того что немного привёл к приличному виду код :)
#include <iostream>
using namespace std;
int main(void)
{
int sum1 = 0;
int sum2 = 0;
cout << "N = ";
int N;
cin >> N;
cout << "Введите элементы матрицы А: \n";
// Выделение динамической памяти для массива
int** arr = new int* [N];
for (int i = 0; i < N; ++i)
arr[i] = new int [N];
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
cin >> arr[i][j];
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
if (j > i)
sum1 += arr[i][j]; // если элемент лежит выше главной диагонали, то наращиваем сумму
else if (i > j)
sum2 += arr[i][j];
cout << "S1=" << sum1 << endl;
cout << "S2=" << sum2 << endl;
// Освобождение выделеной памяти для массива
for (int i = 0; i < N; ++i)
delete[] arr[i];
delete[] arr;
return 0;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть шаблонная функция, принимающая аргумент произвольного типаХочется сделать специализацию этой функции для строк, но при этом строку...
Начал учить с++, на теме логических операторов после пары минут экспериментов наткнулся на то, что есть некоторые нелогичные моменты у логических...
Есть произвольная строка не больше 25 символовНапример "wo1fram" Как преобразовать ее в массив char[255]? Чтобы потом с char можно было работать как...