Задача 8. Решение 1:
#include<iostream>
using namespace std;
int main()
{
int i,j,a[10][20],n,m,Sum;
cout<<"брой редове: ";
cin>>n;
cout<<"брой колони: ";
cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"сборът на елементите от отделните колони:"<<endl;
for(j=0;j<m;j++)
{
Sum=0;
for(i=0;i<n;i++)
Sum=Sum+a[i][j];
cout<<Sum<<" ";
}
return 0;
}Задача 8. Решение 2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int matrix[10][20]={0};
// Броят на редовете(rows) и колоните(cols) които ще се въведат
int rows, cols;
// Въвежда се броя на редовете и колоните
std::cout << "Input rows: ";
std::cin >> rows;
std::cout << "Input cols: ";
std::cin >> cols;
std::cout << std::endl;
// Въвежда се матрицата
std::cout << "Input matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
std::cout << "matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << std::endl;
}
// Масив за реда със сумите на елементите по колони
int sumColumns[20]={0};
// Извежда се матрицата чрез обхождане по редове и същевременно
//се намират сумите на елементите по колони
std::cout << "Output matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
// Извеждат се елементите на матрицата на екрана
std::cout << setw(11) << matrix[i][j];
// Увеличава сумата за съответната колона с текущия елемент
sumColumns[j] += matrix[i][j];
}
std::cout << std::endl;
}
for(int i=0; i<cols; i++) std::cout << "-----------";
std::cout << std::endl;
for(int i=0; i<cols; i++) std::cout << setw(11) << sumColumns[i];
std::cout << std::endl;
return 0;
}Задача 9. Решение 1:
#include<iostream>
using namespace std;
int main()
{
int i,j,a[50][60],n,m,Sum;
cout<<"брой редове: ";
cin>>n;
cout<<"брой колони: ";
cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
for(i=0;i<n;i++)
{
Sum=0;
for(j=0;j<m;j++)
{
cout<<a[i][j]<<" ";
if(a[i][j]%3==0)
Sum=Sum+a[i][j];
}
cout<<Sum<<" ";
cout<<endl;
}
return 0;
}Задача 9. Решение 2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int matrix[50][60]={0};
// Броят на редовете(rows) и колоните(cols)
int rows, cols;
// Въвежда се броя на редовете и колоните
std::cout << "Input rows: ";
std::cin >> rows;
std::cout << "Input cols: ";
std::cin >> cols;
std::cout << std::endl;
// Въвежда се матрицата
std::cout << "Input matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
std::cout << "matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << std::endl;
}
// Масив за броя на четните елементи по колони
int evenNumbersCnt[30]={0};
// Извежда се матрицата чрез обхождане по редове
// и същевременно се намират минималните елементи
std::cout << "Output matrix:" << std::endl;
for(int i=0; i<rows; i++) {
double Sum = 0;
bool foundSum = false;
for(int j=0; j<cols; j++) {
// Извеждат се елементите на матрицата
std::cout << setw(11) << matrix[i][j];
// Проверява дали числото е кратно на 3
if( matrix[i][j]%3 == 0 ) {
Sum += matrix[i][j];
foundSum = true;
}
}
// Извежда се сумата в края на реда, ако има намерена такава
if( true == foundSum ) std::cout << " | " << setw(11) << Sum << std::endl;
else std::cout << " | " << setw(11) << '-' << std::endl;
}
return 0;
}Задача 10. Решение 1:
using namespace std;
int main()
{
int i,j,a[40][30],n,m,br;
cout<<"брой редове: ";
cin>>n;
cout<<"брой колони: ";
cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"броят на нечетните елементи от отделните колони:"<<endl;
for(j=0;j<m;j++)
{
br=0;
for(i=0;i<n;i++)
if(a[i][j]%2!=0) br++;
cout<<br<<" ";
}
return 0;
}Задача 10. Решение 2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int matrix[40][30]={0};
// Броят на редовете(rows) и колоните(cols)
int rows, cols;
// Въвежда се броя на редовете и колоните
std::cout << "Input rows: ";
std::cin >> rows;
std::cout << "Input cols: ";
std::cin >> cols;
std::cout << std::endl;
// Въвежда се матрицата
std::cout << "Input matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
std::cout << "matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << std::endl;
}
// Масив за броя на четните елементи по колони
int evenNumbersCnt[30]={0};
// Извежда се матрицата чрез обхождане по редове
// и същевременно се намират минималните елементи
std::cout << "Output matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
// Извеждат се елементите на матрицата
std::cout << setw(11) << matrix[i][j];
// Проверява дали числото е нечетно и се увеличава брояча
if( matrix[i][j]%2 == 1 ) {
evenNumbersCnt[j]++;
}
}
std::cout << std::endl;
}
for(int i=0; i<cols; i++) std::cout << "-----------";
std::cout << std::endl;
for(int i=0; i<cols; i++) std::cout << setw(11) << evenNumbersCnt[i];
std::cout << std::endl;
return 0;
}Задача 11. Решение 1:
#include<iostream>
using namespace std;
int main()
{
int i,j,a[10][30],n,m,max;
cout<<"брой редове: ";
cin>>n;
cout<<"брой колони: ";
cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
for(i=0;i<n;i++)
{
max=a[i][0];
for(j=0;j<m;j++)
{
cout<<a[i][j]<<" ";
if(a[i][j]>max)
max=a[i][j];
}
cout<<max<<" ";
cout<<endl;
}
return 0;
}Задача 11. Решение 2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int matrix[10][30]={0};
// Броят на редовете(rows) и колоните(cols)
int rows, cols;
// Въвежда се броя на редовете и колоните
std::cout << "Input rows: ";
std::cin >> rows;
std::cout << "Input cols: ";
std::cin >> cols;
std::cout << std::endl;
// Въвежда се матрицата
std::cout << "Input matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
std::cout << "matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << std::endl;
}
// Извежда се матрицата и същевременно търси максималните елемети,
// за да ги изведе на края на реда
std::cout << "Output matrix:" << std::endl;
for(int i=0; i<rows; i++) {
// Декларира се променлива за максималния елемент и се инициализира с
// числото от нулевата колона за дадения ред
int maxNumber = matrix[i][0];
for(int j=0; j<cols; j++) {
// Извежда се матрицата
std::cout << setw(11) << matrix[i][j];
// Търсене на максималния елемент
if( matrix[i][j] > maxNumber ) maxNumber = matrix[i][j];
}
// Извежда се максималното число в края на реда
std::cout << " | " << setw(11) << maxNumber << std::endl;
}
return 0;
}Задача 12. Решение 1:
#include<iostream>
using namespace std;
int main()
{
int i,j,a[20][10],n,m,min;
cout<<"брой редове: ";
cin>>n;
cout<<"брой колони: ";
cin>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cout<<"a["<<i<<"]["<<j<<"]=";
cin>>a[i][j];
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"минималните елементи от отделните колони:"<<endl;
for(j=0;j<m;j++)
{
min=a[0][j];
for(i=1;i<n;i++)
{
if(a[i][j]<min)
min=a[i][j];
}
cout<<min<<" ";
}
return 0;
}Задача 12. Решение 2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int matrix[20][10]={0};
// Броя на редовете(rows) и колоните(cols)
int rows, cols;
// Въвежда се броя на редовете и колоните
std::cout << "Input rows: ";
std::cin >> rows;
std::cout << "Input cols: ";
std::cin >> cols;
std::cout << std::endl;
// Въвежда се матрицата
std::cout << "Input matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
std::cout << "matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << std::endl;
}
// Масив за реда на минималните елементи по колони
int minColumnNumbers[10];
// Извежда се матрицата чрез обхождане по редове и същевременно
// се намират минималните елементи
std::cout << "Output matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
// Извеждат се елементите на матрицата на екрана
std::cout << setw(11) << matrix[i][j];
// Ако е нулевия ред(i), то minColumnNumbers се инициализира с
// елемента от всяка колона(j)
if( i == 0 ) {
minColumnNumbers[j] = matrix[i][j];
}
else if(matrix[i][j] < minColumnNumbers[j]) {
minColumnNumbers[j] = matrix[i][j];
}
}
std::cout << std::endl;
}
for(int i=0; i<cols; i++) std::cout << "-----------";
std::cout << std::endl;
for(int i=0; i<cols; i++) std::cout << setw(11) << minColumnNumbers[i];
std::cout << std::endl;
return 0;
}Задача 13. Решение 2:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
int matrix[10][30]={0};
// Броя на редовете(rows) и колоните(cols)
int rows, cols;
// Въвежда се броя на редовете и колоните
std::cout << "Input rows: ";
std::cin >> rows;
std::cout << "Input cols: ";
std::cin >> cols;
std::cout << std::endl;
// Въвежда се матрицата
std::cout << "Input matrix:" << std::endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
std::cout << "matrix[" << i << "][" << j << "] = ";
std::cin >> matrix[i][j];
}
std::cout << std::endl;
}
// Променлива за минималния максимален елемент
int minMxNumber;
// Извежда се матрицата и същевременно търси максималните елемети,
// за да ги изведе на края на реда;
std::cout << "Output matrix:" << std::endl;
for(int i=0; i<rows; i++) {
// Декларира се променлива за максималния елемент и се инициализира с
// числото от нулевата колона за дадения ред
int maxNumber = matrix[i][0];
for(int j=0; j<cols; j++) {
// Извежда се матрицата
std::cout << setw(11) << matrix[i][j];
// Търсене на максималния елемент
if( matrix[i][j] > maxNumber ) maxNumber = matrix[i][j];
}
// Извежда се максималното число в края на реда
std::cout << " | " << setw(11) << maxNumber<< std::endl;
if( 0 == i) minMxNumber = maxNumber;
else if( maxNumber < minMxNumber ) minMxNumber = maxNumber;
}
std::cout << std::endl;
std::cout << "Min number from all max numbers of row is: " << minMxNumber << std::endl;
return 0;
}