Тема: Проблема з виводом масива за допомогою функції!
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
bool N_goodDisposition(int x1, int x2)
{
if(x1 % 2 != x2 % 2) //Якщо одне число парне а друге непарне, то меншим буде парне
return x1 % 2 < x2 % 2;
else if(x1 % 2 == 1) // Числа непарні, має бути спаданні
return x1 < x2;
}
bool P_goodDisposition(int x1, int x2)
{
if(x1 % 2 != x2 % 2) //Якщо одне число парне а друге непарне, то меншим буде парне
return x1 % 2 < x2 % 2;
else if(x1 % 2 == 0) // Числа парні, має бути спадання
return x1 < x2;
}
void Sort_p(int* arr, int size)
{
for(int i = 0; i < size - 1; i++)
{
if(arr[i] % 2 == 0)
for(int j = i + 1; j < size; j++)
{
if(!P_goodDisposition(arr[i], arr[j]))
{
int x = arr[i];
arr[i] = arr[j];
arr[j] = x;
}
}
}
}
void Sort_np(int* arr, int size)
{
for(int i = 0; i < size - 1; i++)
{
if(arr[i] % 2 == 1)
for(int j = i + 1; j < size; j++)
{
if(N_goodDisposition(arr[i], arr[j]))
{
int x = arr[i];
arr[i] = arr[j];
arr[j] = x;
}
}
}
}
int show(int** arr, int rows, int columns)
{
cout << "Matrix:" << endl;
for(size_t i = 0; i < rows; i++)
{
for(size_t j = 0; j < columns; j++)
{
cout << setw(3) << arr[i][j] << ' ';
}
cout << endl;
}
}
int main() {
setlocale(0, "");
ofstream fin("text.txt");
if(!fin.is_open())
cout << "not file\n";
size_t N, M;
int V, B, d = 0;
cout << setw(4) << "write N:" << " ";
cin >> N;
cout << setw(4) << "write M:" << " ";
cin >> M;
cout << setw(4) << "write V:" << " ";
cin >> V;
cout << setw(4) << "write B:" << " ";
cin >> B;
cout << "\n";
int i, j;
int arr[N][M];
int *temp = new int[N * M];
size_t k = 0;
srand(time(NULL));
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++)
{
arr[i][j] = V + rand() % (B - V + 1);
cout << setw(6) << arr[i][j];
fin << setw(6) << arr[i][j];
}
fin << endl;
cout << endl;
}
// show((inarr, N, M);
cout << endl;
for(size_t i = 0; i < N; i++)
{
for(size_t j = 0; j < M; j++)
{
if(arr[i][j] % 2 == 0)
{
d = d + 1;
}
temp[k] = arr[i][j];
k++;
}
}
fin << "d=" << d;
Sort_p(temp, N * M);
Sort_np(temp, N * M);
k = 0;
for(size_t i = 0; i < N; i++)
{
for(size_t j = 0; j < M; j++)
{
arr[i][j] = temp[k];
k++;
}
}
delete[]temp;
// show(arr, N, M);
cout << "Matrix:" << endl;
for(int i = 0; i < N; i++)
{
for(int j = 0; j < M; j++)
{
cout << setw(6) << arr[i][j];
}
cout << endl;
}
system("pause");
return 0;
}