Тема: Бінарні файли
Компонентами бінарного файлу F1 є цілі числа. Записати у новий бінарний файл F2 всі числа файлу F1 за винятком тих, які зустрічаються один раз. Порядок слідування чисел збігається.
#include <iostream>
#include <cmath>
using namespace std;
int** first_arr(int N) {
srand(time(0));
int** arr = new int* [N];
for (int i = 0; i < N; i++)
arr[i] = new int[N];
cout << "Array: \n";
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
arr[i][j] = 1 + rand() % 10;
cout << arr[i][j] << ' ';
}
cout << endl;
}
//cout << "\nArray after shell sort: \n";
//for (int i = 0; i < N; i++) {
// for (int j = 0; j < N; j++)
// cout << arr[i][j] << " ";
// cout << endl;
//}
return arr;
}
int arr_in_f1(int N, int **arr) {
FILE* f;
fopen_s(&f, "F1.txt", "wt");
if (!f) {
cout << "Couldn`t open F1.txt" << endl;
return 1;
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
fprintf(f, "%3d", arr[i][j]);
//if ((i + 1) % 5 == 0)
// fprintf(f, "\n");
}
fprintf(f, "\n");
}
if (fclose(f) == EOF) {
cout << "The file F1.txt was not closed" << endl;
}
cout << "Exit success" << endl;
return 0;
}
int* mas_repeat(int N, int** arr) {
srand(time(0));
int m, n, index_i = {}, index_j = {};
int** mas = new int* [N];
for (int i = 0; i < N; i++)
mas[i] = new int[N];
cout << "Array where integers repeat : \n";
int k = arr[0][0];
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
cout << m << endl;
if (i != n || j != m) {
if (arr[i][j] == k) {
if (m < N) {
m += 1;
k = arr[n][m];
i = 0;
j = -1;
}
else {
n += 1;
if (n > N) break;
m = 0;
k = arr[n][m];
i = 0;
j = -1;
}
}
else {
if (i == N || j == N) {
index_i += n;
cout << index_i << endl;
index_j += m;
if (m < N) {
m += 1;
k = arr[n][m];
i = 0;
j = -1;
}
else {
n += 1;
if (n > N) break;
m = 0;
k = arr[n][m];
i = 0;
j = -1;
}
}
}
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (i != index_i || j != index_j) {
mas[i][j] = arr[i][j];
cout << mas[i][j] << ' ';
}
}
cout << endl;
}
return *mas;
delete[]mas;
}
int cr_f2(int N, int** arr) {
FILE* f;
fopen_s(&f, "F2.txt", "wt");
if (!f) {
cout << "Couldn`t open F2.txt" << endl;
return 1;
}
int *mas = mas_repeat(N, arr);
for (int i = 0; i < N; i++) {
fprintf(f, "%3d", mas[i]);
}
fprintf(f, "\n");
if (fclose(f) == EOF) {
cout << "The file F2.txt was not closed" << endl;
}
cout << "Exit success" << endl;
return 0;
}
int main() {
int N;
cout << " N = ";
cin >> N;
int **arr = first_arr(N);
arr_in_f1(N, arr);
cr_f2(N, arr);
delete[]arr;
}
Не можу ніяк доробити програму. Проблема зі змінними в середині циклу