Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 26.11.2018
Сообщений: 31
1

В бинарном файле содержащем вещественные числа поменять местами максимальное и минимальное числа

20.06.2020, 16:00. Просмотров 223. Ответов 3
Метки нет (Все метки)


В бинарном файле содержащем вещественные числа поменять местами максимальное и минимальное числа. Дополнительных массивов не использовать. Содержимое файла вывести на экран.
Помогите поменять местами максимальный и минимальный элементы, пожалуйста, очень срочно..
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
45
46
47
48
49
50
51
52
53
54
55
56
57
#define _CRT_SECURE_NO_WARNINGS
 
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
 
 
void sozdbin()
{
    FILE* b = NULL;
    int n = 10;
    float x;
    b = fopen("C:/Users/User/Desktop/Программирование/Файлы/b.bin", "wb");
    for (int i = 0; i < n; i++)
    {
        x = i + 2;
        fwrite(&x, sizeof(float), 1, b);
    }
    fclose(b);
    b = fopen("C:/Users/User/Desktop/Программирование/Файлы/b.bin", "rb");
    for (int i = 0; i < n; i++)
    {
        fread(&x, sizeof(float), 1, b);
        printf(" %.1f ", x);
    }
    fclose(b);
}
void ydalenie()
{
    FILE* b;
    float n, minf, maxf, x = 0, i = 0;
    
    
    b = fopen("C:/Users/User/Desktop/Программирование/Файлы/b.bin", "r+b");
 
    while (fread(&n, sizeof(float), 1, b))
    {
        if ((x++) == 0) minf = n, maxf = n;
        if (n < minf) minf = n;
        if (n > maxf) maxf = n;
        
    }
    printf("\n\nmin=%.1f\n", minf);
    printf("max=%.1f\n", maxf);
    rewind(b);
 
    fclose(b);
    return 0;
}
void main()
{
    setlocale(LC_ALL, "Rus");
    sozdbin();
    ydalenie();
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2020, 16:00
Ответы с готовыми решениями:

Найти максимальное и минимальное числа массива, и затем поменять их местами
Дан двумерный массив состоящий из чисел которые вводятся random.Найти максимальное и минимальное...

Даны вещественные числа х и у. вычислить максимальное и минимальное числа
у меня оооочень простая задача. Вот условие: даны вещественные числа х и у. вычислить максимальное...

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

Описать функцию, подсчитывающую сумму отрицательных элементов в файле, содержащем вещественные числа
1. Дан файл, содержащий вещественные числа. Описать функцию, подсчитывающую сумму отрицательных...

3
1526 / 774 / 320
Регистрация: 11.10.2018
Сообщений: 4,070
20.06.2020, 16:06 2
Как мы недавно выяснили путь пишется через двойной обратный слэш.
0
Продавец времени
4912 / 2686 / 619
Регистрация: 12.03.2015
Сообщений: 13,024
20.06.2020, 16:54 3
А чо делать, если, например, минимальное число одно, а максимальных - три?
0
1526 / 774 / 320
Регистрация: 11.10.2018
Сообщений: 4,070
20.06.2020, 17:51 4
Разве можно читать файл и писать в него одновременно? Или в другой файл записать?

Добавлено через 17 минут
Сделал вывод в файл "o.bin".
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <locale.h>
const int n = 10;
 
struct TMinInfo
{
    int n;
    float val;
} min;
 
struct TMaxInfo
{
    int n;
    float val;
} max; 
  
void sozdbin()
{
    FILE* b = NULL;
    int i;
    float x;
    
    b = fopen("b.bin", "wb");
    for(i = 0; i < n; i++)
    {
        x = i + 2;
        fwrite(&x, sizeof(float), 1, b);
    }
    fclose(b);
    
    b = fopen("b.bin", "rb");
    for(i = 0; i < n; i++)
    {
        fread(&x, sizeof(float), 1, b);
        printf("%.1f ", x);
    }
    printf("\n");
    fclose(b);
}
 
void obmen()
{
    FILE *b, *o;
    int i;
    float x;
    
    b = fopen("b.bin", "r+b");
    for(i = 0; i < n; i++)
    {
        fread(&x, sizeof(float), 1, b);
        if(i == 0)
        {
            min.n = 0;
            min.val = x;
            max.n = 0;
            max.val = x;
        }
        else
        {
            if(x < min.val)
            {
                min.n = i;
                min.val = x;
            }
            if(x > max.val)
            {
                max.n = i;
                max.val = x;
            }
        }
    }
    printf("\nmin.n = %d\n", min.n);
    printf("\nmin.val = %f\n", min.val);
    printf("\nmax.n = %d\n", max.n);
    printf("\nmax.val = %f\n", max.val);
    rewind(b);
 
    o = fopen("o.bin", "wb");
    
    for(i = 0; i < n; i++)
    {
        fread(&x, sizeof(float), 1, b);
        if(i == min.n)
        {
            fwrite(&max.val, sizeof(float), 1, o);
        }
        else if(i == max.n)
             {
                fwrite(&min.val, sizeof(float), 1, o);
             }
             else
             {
                fwrite(&x, sizeof(float), 1, o);
             }
        
        
        
    }
 
    fclose(b);
    fclose(o);
    return 0;
}
 
void lookup(void)
{
    FILE* o = NULL;
    int i;
    float x;
    
    o = fopen("o.bin", "rb");
    printf("\nlookup\n");
    for(i = 0; i < n; i++)
    {
        fread(&x, sizeof(float), 1, o);
        printf("%.1f ", x);
    }
    printf("\n");
    fclose(o);
}
 
void main()
{
    setlocale(LC_ALL, "Rus");
    
    sozdbin();
    obmen();
    lookup();
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2020, 17:51

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Определить минимальное значение в txt-файле, содержащем целые числа
Имеется текстовый файл, содержащий целые числа. Определить сколько раз в нем повторяется...

Поменять в файле местами минимальное и максимальное значения среди четных и нечетных элементов
Дан бинарный файл целых чисел. Поменять в нем местами минимальное и максимальное значения среди...

Даны вещественные числа. Поменять в этой последовательности местами элементы по условию
Даны вещественные числа А1,...,А20. Поменять в этой последовательности местами: а) наибольший и...

Определить вторые по значению минимальное и максимальное числа и их позиции в файле
Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел,...

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

В файле записаны целые числа. Найти максимальное и минимальное число и записать в другой файл
нужно сделать задачу в питоне


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.