Задача 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; }