C/C++

Программирование на языках C/C++

Задана квадратная матрица порядка 7. Вычислить сумму квадратов отрицательных чисел, лежащих выше побочной диагонали. Программа должна выполнять ввод и вывод матрицы и дополнительных данных, выполнять необходимые действия и выводить результаты. Срочно!!!
Давай. Я на жирного сис админа не поступал. Как ты мне роутер чинить будешь незная этого?
ЕК
Евгений Кочев
4 488
Лучший ответ
#include <iostream>
#include <random>
#include <iomanip>
using namespace std;
int sum(int x) {
return x < 0? x * x : 0;
}
int main() {
const auto n = 7U;
int matrix[n][n];
uniform_int_distribution<> uid(-9, 9);
mt19937 gen{ random_device()() };
for (auto& row : matrix) for (auto& x : row) x = uid(gen);
for (const auto& row : matrix) {
for (auto& x : row) cout << setw(4) << x;
puts("");
}
puts("");
auto sum = 0;
for (auto i = 0U; i < n - 1U; ++i) {
for (auto j = 0U; j < i; ++j) {
sum += matrix[i][j] < 0? matrix[i][j] * matrix[i][j] : 0;
}
}
cout << " Sum: " << sum << '\n';
system("pause");
}
#include<stdio.h>
#include<locale.h>
#include<wchar.h>
#include<unistd.h>
#include<time.h>
#include<stdlib.h>
#define max 10
int main()
{
double **matrix, sum=0;
int range=0;
setlocale(LC_ALL,"Russian");
wprintf(L"Введите порядок квадратной матрицы: ");
wscanf(L"%d",&range);
wprintf(L"Создаём матрицу... \n");
matrix=(double**)malloc(range*sizeof(double*));
if(!matrix)
{
wprintf(L"\nНе выделена память в ОЗУ для строк матрицы. \nПрограмма будет завершена с ошибкой.");
exit(1);
}
else wprintf(L"\nВыделена память в ОЗУ для строк матрицы...");
srand(time(NULL));
for(int i = 0; i < range; i++)
{
matrix[i]=(double*)malloc(range*sizeof(double));
if(!matrix[i])
{
wprintf(L"\nНе выделена память в ОЗУ для столбцов матрицы. \nПрограмма будет завершена с ошибкой.");
exit(1);
}
}
wprintf(L"\nВыделена память в ОЗУ для столбцов матрицы...");
wprintf(L"\nЗаполняем матрицу случайными значениями в диапозоне -%d..%d...\n",max,max);
for(int i = 0; i < range; i++)
{
for(int j = 0; j < range; j++)
{
if(rand()%2==0)
matrix[i][j]=(0.1*(rand()%max))+(rand()%max);
else
matrix[i][j]=-((0.1*(rand()%max))+(rand()%max));
wprintf(L"%5.1lf",matrix[i][j]);
if( ((i + j) < range-1) && (matrix[i][j] < 0))
sum+=matrix[i][j]*matrix[i][j];
}
wprintf(L"\n");
}
wprintf(L"\nСумма квадратов отрицательных чисел, \nлежащих выше побочной диагонали, равна %.2lf",sum);

for(int i = 0; i < range; i++)
free(matrix[i]);
free(matrix);
fflush(stdout);
sleep(5);
return 0;
}
Матрица целочисленная или сразу double???
Игорь Курмаев
Игорь Курмаев
21 700
А, ну если срочно, тогда уже бежим. Где волшебное слово, тунеядец?
#include
using namespace std;

int main()
{
const int SIZE = 7;

double** matrix = new double* [SIZE];

for (int i = 0; i < SIZE; i++)
matrix[i] = new double [SIZE];

for (int i = 0; i < SIZE; i++)
for (int j = 0; j < SIZE; j++)
{
cout << "A(" << i + 1 << ", " << j + 1 << ") = ";
cin >> matrix[i][j];
}

double sum = 0.0;

for (int i = 0; i < SIZE; i++)
for (int j = 0; j < SIZE - i - 1; j++)
if (matrix[i][j] < 0)
sum += matrix[i][j] * matrix[i][j];

for (int i = 0; i < SIZE; i++)
delete[] matrix[i];

delete[] matrix;

cout << "result: " << sum << endl;

return 0;
}