0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 40
1

В бинарном файле поменять местами элементы

21.04.2020, 16:37. Показов 3402. Ответов 2

Author24 — интернет-сервис помощи студентам
В бинарном файле вещественные числа: нужно поменять местами первый элемент с минимальным, а последний с максимальным числами. Написала код для создания бинарного файла и вывода на экран начального массива. Сделать рабочий поиск и обмен элементов у меня не получилось. Помогите, пожалуйста!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>
 
void Bin_file(void)
{
    int n,i;
    float a;
    FILE *fp=fopen("file.bin","wb+");
    printf("Введите количество элементов - >");
    scanf("%d",&n);
    for (i=0; i<n; i++)
        {
            scanf("%f",&a);
            fwrite(&a,sizeof(float),1,fp);
        }
    fclose(fp);
}
int main()
{
    setlocale(LC_ALL, "Russian");
    Bin_file();
    int i=0, j=0, n;
    float *mas, min=0,max=0, a, b, m1, m2, t1, t2;
    FILE *fp=fopen("file.bin","rb+");
    fseek(fp,0,SEEK_END);     //перевести курсор в конец файла
    n=ftell(fp)/(sizeof(float)); //подсчёт кол-ва элементов
    rewind(fp);                      //вернуть курсор в начало
    mas=malloc(sizeof(float)*n); //выделение памяти
    printf ("Изначальный массив:\n");
    fread(mas,sizeof(float),n,fp);
    for (i=0; i<n; i++)
        printf("%f ",mas[i]);
 
    printf("%\n");
    printf ("Новый массив:\n");
 
//поиск максимального и минимального, обмен
 
    fclose(fp);
    free(mas);
return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.04.2020, 16:37
Ответы с готовыми решениями:

Поменять элементы местами в бинарном файле местами прямым доступом
Дан бинарный файл, 2*n в котором записаны числа (1 2 3 4 5 6), где n=3. Отсортировать так чтобы...

Как поменять первый и последний элементы в бинарном файле?
К примеру, у нас есть три числа a,b,c. На выходе необходимо получить c,d,a. Как это сделать с...

Поменять местами в файле минимальный и максимальные элементы
Дан файл вещественных чисел. Поменять в нём местами минимальный и максимальные элементы. На ум...

Поменять в нём местами максимальный и минимальный элементы в файле
Дан файл вещественных чисел. Поменять в нём местами максимальный и минимальный элементы. Вот что у...

2
Прощай, Мир!
1672 / 830 / 253
Регистрация: 26.05.2012
Сообщений: 3,056
21.04.2020, 23:41 2
Лучший ответ Сообщение было отмечено Al_Kaz как решение

Решение

Цитата Сообщение от Al_Kaz Посмотреть сообщение
нужно поменять местами первый элемент с минимальным, а последний с максимальным числами
Al_Kaz, не ясно, где нужно менять: в самом файле или просто при выводе на консоль..
если вывод на консоль, то сделал обмен минимального с первым.. обмен максимального будет подобен тому..
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
    //поиск максимального и минимального, обмен
    min=mas[0];
    pos=0;
    for(int i=1;i<n;i++)
    {
        if(mas[i]<min)
        {
            min=mas[i];
            pos=i;
        }
    }
 
    tmp=mas[0];
    mas[0]=mas[pos];
    mas[pos]=tmp;
 
    printf ("\nnew arr:\n");
    for (int i=0;i<n;i++)
    {
        printf("%f ", mas[i]);
    }
0
0 / 0 / 0
Регистрация: 04.03.2020
Сообщений: 40
22.04.2020, 14:10  [ТС] 3
Нужно переписать изменения в тот же файл

Добавлено через 1 час 26 минут
В самом файле, переписать туда же изменения
Цитата Сообщение от proc3nt Посмотреть сообщение
не ясно, где нужно менять: в самом файле или просто при выводе на консоль
0
22.04.2020, 14:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2020, 14:10
Помогаю со студенческими работами здесь

Поменять местами первый и последний элементы в текстовом файле
Имеется структура: struct list {int num; // номер char author; // автор ...

В бинарном файле поменять местами элементы, что стоят на парных местах с элементами, что стоят на непарных местах
Помогите пожалуйста написать код. В бинарном файле поменять местами элементы, что стоят на...

В заданном бинарном файле переставить местами элементы с максимальным и минимальным значениями
Задание Написать программу для обработки данных, хранящихся в бинарных файлах согласно...

поменять в файле местами элементы в каждой паре:
заполнить файл f целыми числами,полученными с помощью генератора случайных чисел.поменять в файле...

Поменять в файле местами минимальный и максимальный элементы
КТО СМОЖЕТ ПОМОГИТЕ:1)File26. Дан файл вещественных чисел. Поменять в нем местами минимальный и...

Определить максимальный и минимальный элементы в файле и поменять их местами
Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru