Qellex

7.2 - 6 в

May 6th, 2021
426
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <malloc.h>
  4. #include <locale.h>
  5.  
  6. // Добавляем элементы
  7. void sdvig_add(int* a, int i, int m) {
  8.     for (m; i <= m; m--)
  9.         a[m] = a[m - 1]; // последний элемент сдвигает вправо и так идет до нужного нам элемента
  10. }
  11.  
  12.  
  13.  
  14. void main() {
  15.  
  16.     setlocale(LC_ALL, "rus");
  17.  
  18.     FILE* fp;
  19.     if (fopen_s(&fp, "arr.bin", "wb") != 0) {  // Открытие файла для записи и проверка открылся ли он
  20.         printf("Ошибка открытия файла!");
  21.         return;
  22.     }
  23.     else {
  24.         int m = 13;
  25.         int b[13] = { 27, 2, 4, 124, 23, 2, 43, 48, 524, 6, 24, 2, 7 };  // Исходный числа
  26.         fwrite(&b, sizeof(int), m, fp);
  27.     }
  28.     if (fclose(fp) != 0)                       // Закрытие файла и проверка
  29.         printf("Ошибка закрытия файла");
  30.  
  31.  
  32.     if (fopen_s(&fp, "arr.bin", "rb") != 0) {  // Открытие файла для чтения и проверка открылся ли он
  33.         printf("Ошибка открытия файла!");
  34.         return;
  35.     }
  36.     int m = 13;
  37.     int a[26] = { 0 }; // Выделение памяти под массив
  38.  
  39.     // Заполнение массива матрицой из файла
  40.     fread(a, sizeof(int), m, fp);
  41.  
  42.     // Добавляем элементы если они имеют значение от 4 до 10
  43.     for (int i = 0; i < m; i++) {
  44.         // Если это нужный элемент, то сдвигаем элементы вправо и добавляем элемент
  45.         if ((a[i] > 4) && (a[i] < 11)) {
  46.             i++; m++; // добавился элемень и размер матрицы больше
  47.             sdvig_add(a, i, m);  // отправляем в функцию
  48.         }
  49.     }
  50.     if (fclose(fp) != 0)                                // Закрытие файла и проверка
  51.         printf("Ошибка закрытия файла");
  52.  
  53.    
  54.     if (fopen_s(&fp, "arr.bin", "wb") != 0) {           // Открытие файла для записи и проверка открылся ли он
  55.         printf("Ошибка открытия файла!");
  56.         return;
  57.     }
  58.  
  59.     fwrite(&a, sizeof(int), m, fp);
  60.  
  61.     if (fclose(fp) != 0)                                 // Закрытие файла и проверка
  62.         printf("Ошибка закрытия файла");
  63.  
  64.     return;
  65.     system("pause");
  66. }
RAW Paste Data