Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cmath>
- using namespace std;
- /* Файл: 25 чисел(матрица 5 на 5). Заменить в матрице все цифры 1 на 0.
- Отсортировать столбцы матрицы по количеству простых чисел */
- int countprimes(int matrix[]); //функция считающая простые числа в строке
- const int size = 5;
- int main(int argc, char** argv) {
- setlocale(LC_ALL, "Russian");
- int matrix[size][size];
- ifstream file("in.txt");
- // Вывод массива
- cout<<"Исходный массив"<<endl;
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- file >> matrix[i][j];
- cout << matrix[i][j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- file.close();
- //Замена 1 на 0
- cout<<"Заменим единицы нулями"<<endl;
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- if (matrix[i][j]==1) matrix[i][j]=0;
- cout << matrix[i][j] << " ";
- }
- cout << endl;
- }
- cout << endl;
- //Сортировка пузырьком
- for (int i = 0; i < size - 1; ++i) {
- for (int j = 0; j < size - i - 1; j++) {
- if (countprimes(matrix[i]) < countprimes(matrix[i + 1])) {
- swap(matrix[i], matrix[i + 1]);
- }
- }
- }
- //Вывод после сортировки
- cout<<"Отсортированный массив"<<endl;
- for (int i = 0; i < size; i++) {
- for (int j = 0; j < size; j++) {
- cout << matrix[i][j] << " ";
- }
- cout << endl;
- }
- }
- int countprimes(int matrix[]){
- int count(0);
- for (int i = 0; i < size; i++) {
- if (matrix[i] == 2 || matrix[i] == 3 ) count++; //Если 2 или 3, то простое
- for (int k = 2; k<= matrix[i]/2; k++) {
- if (matrix[i] % k == 0 || matrix[i]==0) break; //Если кратно, останавливаем цикл, число не простое
- if (k >= matrix[i] / 2) count++; //Если проверили все кратности и не вышли из цикла, число простое
- }
- }
- return count;
- }
- Исходный массив
- 1 23 56 4 31
- 44 34 11 8 41
- 66 22 1 35 67
- 89 21 31 65 73
- 3 9 1 27 17
- Заменим единицы нулями
- 0 23 56 4 31
- 44 34 11 8 41
- 66 22 0 35 67
- 89 21 31 65 73
- 3 9 0 27 17
- Отсортированный массив
- 0 23 56 4 31
- 44 34 11 8 41
- 89 21 31 65 73
- 3 9 0 27 17
- 66 22 0 35 67
Add Comment
Please, Sign In to add comment