Кто может помочь?
Цель: написать программу, реализующей алгоритм, указанный в варианте, а также описать оценку вычислительной сложности данной программы.
Вариант 7
Составить программу, в которой
- организовать ввод матрицы размера mxn из целых чисел;
- вычислить сумму элементов, которые стоят по периметру матрицы;
- переставить элементы второго столбца в обратном порядке;
- организовать вывод матрицы в виде отдельной функции
Answers & Comments
Ответ:
/ deit.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
#include <locale>
using namespace std;
void vvod_matr(int mas[][4], const int &n, const int &m)
{
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j++)
{
wcout << L"Введите элемент матрицы[" << i << "][" << j << "]: ";
cin >> mas[i][j];
}
}
void print(int mas[][4], const int &n, const int &m)
{
for(int i = 0; i < n; i++)
{
cout << "\n\t";
for(int j = 0; j < m; j++)
{
cout << setw(3) << setiosflags(ios::left) << mas[i][j];
}
}
}
void _tmain()
{
wcout.imbue(locale(".866"));
const int n = 4, m = 4;
int mas[n][m];
wcout << L"Введите матрицу:\n";
vvod_matr(mas, n, m);
wcout << L"\nВведенная матрица:\n";
print(mas, n, m);
/* умножаем четные элементы матрицы*/
int prois_chet = 1;
for(int i = 0; i < n; i++)
for(int j = 0; j < m; j += 2)
{
prois_chet *= mas[i][j];
}
wcout << L"\n\nПроизведение четных элементов матрицы: " << prois_chet;
/*упорядочиваем элементы второго столбца по возрастанию*/
int stb = 1, t;
for(int i = 0; i < n-1; i++)
for(int j = i+1; j < n; j++)
{
if(mas[i][stb] < mas[j][stb])
{
t = mas[i][stb];
mas[i][stb] = mas[j][stb];
mas[j][stb] = t;
}
}
wcout << L"\n\nУпрядоченная матрица:\n";
print(mas, n, m);
cout << "\n\n";
}
Объяснение:
программа большая 74 строчки поэтому сайт может не так её отобразить