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>
- // Добавляем элементы
- void sdvig_add(int* a, int i, int m) {
- for (m; i <= m; m--)
- a[m] = a[m - 1]; // последний элемент сдвигает вправо и так идет до нужного нам элемента
- }
- void main() {
- setlocale(LC_ALL, "rus");
- FILE* fp;
- if (fopen_s(&fp, "arr.bin", "wb") != 0) { // Открытие файла для записи и проверка открылся ли он
- printf("Ошибка открытия файла!");
- return;
- }
- else {
- int m = 13;
- int b[13] = { 27, 2, 4, 124, 23, 2, 43, 48, 524, 6, 24, 2, 7 }; // Исходный числа
- fwrite(&b, sizeof(int), m, fp);
- }
- if (fclose(fp) != 0) // Закрытие файла и проверка
- printf("Ошибка закрытия файла");
- if (fopen_s(&fp, "arr.bin", "rb") != 0) { // Открытие файла для чтения и проверка открылся ли он
- printf("Ошибка открытия файла!");
- return;
- }
- int m = 13;
- int a[26] = { 0 }; // Выделение памяти под массив
- // Заполнение массива матрицой из файла
- fread(a, sizeof(int), m, fp);
- // Добавляем элементы если они имеют значение от 4 до 10
- for (int i = 0; i < m; i++) {
- // Если это нужный элемент, то сдвигаем элементы вправо и добавляем элемент
- if ((a[i] > 4) && (a[i] < 11)) {
- i++; m++; // добавился элемень и размер матрицы больше
- sdvig_add(a, i, m); // отправляем в функцию
- }
- }
- if (fclose(fp) != 0) // Закрытие файла и проверка
- printf("Ошибка закрытия файла");
- if (fopen_s(&fp, "arr.bin", "wb") != 0) { // Открытие файла для записи и проверка открылся ли он
- printf("Ошибка открытия файла!");
- return;
- }
- fwrite(&a, sizeof(int), m, fp);
- if (fclose(fp) != 0) // Закрытие файла и проверка
- printf("Ошибка закрытия файла");
- return;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement