Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <malloc.h>
- #include <locale.h>
- int main() {
- setlocale(LC_ALL, "rus");
- FILE* fp;
- int n = 5; // размерность матрицы
- if (fopen_s(&fp, "arr.bin", "wb") != 0) { // Открытие файла для записи и проверка открылся ли он
- printf("Ошибка открытия файла!");
- system("pause");
- return 0;
- }
- else {
- int matrix[5][5] = { {1,2,3,4,5}, {0,1,2,3,4}, {0,0,1,2,3}, {0,0,0,1,2}, {0,0,0,0,1} }; // Исходная марица
- fwrite(&matrix, sizeof(int), n*n, fp); // записываем матрицу в бинарный файл
- printf("Исходная матрица:\n");
- for (int i = 0; i < n; i++) { // Вывод исходной матрицы
- for (int j = 0; j < n; j++)
- printf("%d ", matrix[i][j]);
- printf("\n");
- }
- }
- if (fclose(fp) != 0) // Закрытие файла и проверка
- printf("Ошибка закрытия файла");
- if (fopen_s(&fp, "arr.bin", "rb") != 0) { // Открытие файла для чтения и проверка открылся ли он
- printf("Ошибка открытия файла!");
- system("pause");
- return 0;
- }
- int** a = (int**)malloc(n * sizeof(int*)); // Выделение памяти под двумерный массив
- for (int i = 0; i < n; i++)
- a[i] = (int*)malloc(n * sizeof(int));
- for (int i = 0; i < n; i++) // Заполнение массива матрицой из файла
- fread(a[i], sizeof(int), n, fp);
- if (fclose(fp) != 0) // Закрытие файла и проверка
- printf("Ошибка закрытия файла");
- if (fopen_s(&fp, "arr.bin", "wb") != 0) { // Открытие файла для записи и проверка открылся ли он
- printf("Ошибка открытия файла!");
- system("pause");
- return 0;
- }
- printf("Матрица без нулей:\n");
- for (int j = 0; j < n; j++) { // Запись транспонированной матрицы в файл
- for (int i = 0; i < n; i++) {
- if (a[j][i] != 0) { // Если не нуль то записываем это число
- fwrite(&a[j][i], sizeof(int), 1, fp);
- printf("%d ", a[j][i]);
- }
- }
- printf("\n");
- }
- if (fclose(fp) != 0) // Закрытие файла и проверка
- printf("Ошибка закрытия файла");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement