Untitled
unknown
plain_text
4 years ago
2.8 kB
11
Indexable
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
void out(int** mas, int n, int m, int sums, int e, FILE* pf)
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
fprintf(pf, "%5d", mas[i][j]);
}
fprintf(pf, "%c", '\n');
}
fprintf(pf, "Number of columns with zeros = %d\n", sums);
fprintf(pf, "Index str with the longest sequence identical elements = %d\n", e);
}
int main()
{
FILE* fin(NULL);
fin = fopen("text1.txt", "r");
if (!fin)
{
printf("Can not open file\n");
return 1;
}
int n, m;
fscanf(fin, "%d%d", &n, &m);
int** mas = new int* [n];
for (int i = 0; i < n; i++)
mas[i] = new int[m];
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
fscanf(fin, "%d", &mas[i][j]);
fclose(fin);
int sums = 0; // suns = sum of colums
for (int j = 0; j < m; j++)
{
int sum = 0;
for (int i = 0; i < n; i++)
{
if (mas[i][j] == 0)
++sum;
}
if (sum > 0)
++sums;
}
int maxce = 0; //maxce = max count identical elements
int e;
int ce = 0; //ce = count identical elements
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
for (int k = j + 1; k < m; k++)
{
if (mas[i][j] == mas[i][k])
++ce;
else
ce = 0;
}
}
if (ce > maxce)
{
maxce = ce;
e = i;
}
}
FILE* fout = fopen("f2.txt", "w");
out(mas, n, m, sums, e, fout);
out(mas, n, m, sums, e, stdout);
fclose(fout);
//---------------------------------------------------------------------
fout = fopen("f3.txt", "wb");
for (int i = 0; i < n; i++)
{
fwrite(mas[i], sizeof(int) * m, 1, fout);
}
fwrite((char*)&e, sizeof(e), 1, fout);
fwrite((char*)&sums, sizeof(sums), 1, fout);
fclose(fout);
int** mas2 = new int* [n];
for (int i = 0; i < n; i++)
{
mas2[i] = new int[m];
}
//ПЕРЕВІРКА ПРАВИЛЬНОСТІ ЗАПИСУ ДО БІН. ФАЙЛУ
fout = fopen("f3.b", "rb");
for (int i = 0; i < n; i++)
{
fread(mas2[i], sizeof(int) * m, 1, fout);
}
printf("%c", '\n');
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%5d", mas2[i][j]);
}
printf("%c", '\n');
}
printf("%c", '\n');
fread((char*)&e, sizeof(e), 1, fout);
printf("Sum of columns with zeros = %d\n", sums);
fread((char*)&sums, sizeof(sums), 1, fout);
printf("Index str with the longest sequence identical elements = %d\n", e);
fclose(fin);
//---------------------------------------------------------------------
for (int i = 0; i < n; i++)
{
delete[]mas[i];
delete[]mas2[i];
}
delete[]mas;
delete[]mas2;
puts("\nFinish\n");
system("pause");
return 0;
}
Editor is loading...