Untitled
unknown
plain_text
4 years ago
2.8 kB
5
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...