Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > двумерные массивы


Автор: Rpp 7.6.2015, 19:05
Помогите плиз ее исправить!
Дана целочисленная квадратная матрица. Определить :
1 сумму элементов в тех столбцах , которые не содержат отрицательных элементов;
2 минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы
#include <iostream>
using namespace std;
void main()
{
setlocale(LC_ALL, ".1251");
int a[100][100], b[100], k;
cout << "Введите размерность квадратной матрицы= ";
cin >> k;

for (int i = 0; i < k; i++)
{

for (int j = 0; j < k; j++)
{

a[i][j] = rand() % 19 - 9;
}

}
//Вывод
for (int i = 0; i < k; i++)
{
cout << "\n";
for (int j = 0; j < k; j++)
{

cout << a[i][j] << " ";
}

}

//Сумму элементов в тех строках, которые не содержат отрицательных элементов

cout << "\n"; 
int sum;
for (int i = 0; i < k; i++)
{
sum = 0;
for (int j = 0; j < k; j++)
{
if (a[i][j]>0)
{
sum = sum + a[i][j];
}
else {
break;
}
}
cout << "\nСумма элементов в строке " << i + 1 << "= " << sum;
}


//Минимум среди сумм модулей элементов диагоналей, паралельных побочной диагонали матрицы.
cout << "\n";
for (int i = 0; i < k; ++i)
{
int index = i;
sum = 0;
for (int j = k-1; j > -1; --j)
{
cout << "Элемент[" << index+1 << "][" << j+1 << "]";
sum += a[index++][j];
if (index == k)
index = 0;
if (j != 0)
cout << " + ";
}
b[i] = abs(sum);
cout << " = " << sum << "\n";
}

int min = b[0];
sum = 0;
for (int i = 1; i < k; ++i)
{
if (min > b[i])
{
min = b[i];
sum = b[i];
}
else
{
sum = min;
}
}
cout << "\n";
cout << "Диагональ имеет min по модулю сумму=" << sum << endl;


cout << "\n";
system("PAUSE");
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)