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

В двоичном файле целого типа заменить минимальный элемент нулем

15.12.2017, 10:13. Показов 1595. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста разработать программу , ничего похожего не нашел нигде
В двоичном файле целого типа заменить минимальный элемент нулем.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.12.2017, 10:13
Ответы с готовыми решениями:

В четных столбцах матрицы заменить минимальный элемент нулем
В матрице размерности 7 на 7 посчитать в каждом втором столбце заме- нить минимальный элемент...

Заменить минимальный элемент массива нулем, а максимальный увеличить в десять раз
В массиве Y, содержащем 14 элементов, заменить минимальный элемент нулем, а максимальный увеличить...

Заменить минимальный(ые) элементы стека нулем
Всем привет. Как можно присвоить значение первого элемента стека минимуму, что бы минимум не...

В заданном двоичном файле с целыми числами заменить нулями все чётные элементы
Дан двоичный файл с целыми числами. Все его четные элементы заменить нулями. Рассмотреть 2...

2
73 / 86 / 40
Регистрация: 02.11.2017
Сообщений: 379
15.12.2017, 12:27 2
Лучший ответ Сообщение было отмечено IgorBaburin как решение

Решение

C++
1
2
3
4
5
int index = 0;
for (int i = 0; i < arraySize; i++) {
    if (array[i] < array[index]) { index = i; }
}
array[index] = 0;
0
828 / 631 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
15.12.2017, 12:30 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
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
#include <iostream>
#include <fstream>
#include <stdint.h>
bool array_write(const char* filename, const int32_t a[], int n);
bool array_read(const char* filename, int32_t a[], int n);
bool array_min_zero(const char* filename);
 
int main(void){
    char   fn[] = "file.bin";
    const int n = 7;
 
    //записать массив в файл
    int32_t a[n] = { 2, 3, 4, -3, 8, 7, 9 };
    array_write(fn, a, sizeof(a)/sizeof(a[0]));
 
    //изменить min-элемент на ноль
    if(!array_min_zero(fn))
        std::cout << "Error!";
 
    //прочитать файл в массив
    int32_t b[n];
    array_read(fn, b, n);
    for(int i = 0; i < n; ++i)
        std::cout << b[i] << ' ';
    std::cin.get();
    return 0;
}
 
//замена минимального элемента нулём
bool array_min_zero(const char* filename){
    const int size = int(sizeof(int32_t));
    const int N    = 32;
    int32_t a[N];
 
    std::fstream fp(filename, std::ios_base::binary | std::ios_base::in | std::ios_base::out);
    if(!fp.is_open())
        return false;
 
    fp.seekg(0, fp.end);
    std::streampos n = fp.tellg();
    fp.seekg(0, fp.beg);
 
    int     i;
    bool    g = false;
    int32_t m, v;
    std::streampos pos = 0;
    for(std::streampos p = 0; p < n; p += fp.gcount()){
        fp.read(reinterpret_cast<char*>(&a[0]), sizeof(a));
 
        m = fp.gcount() / size;
        for(i = 0; i < m; ++i){
            if(!g || (a[i] < v)){
                g   = true;
                v   = a[i];
                pos = p + static_cast<std::streampos>(i * size);
            }
        }
    }
 
    bool res = !fp.fail();
    if(g && fp.eof()){
        v = 0;
        fp.clear();
        fp.seekg(pos, fp.beg);
        fp.write(reinterpret_cast<const char*>(&v), size);
        res = !fp.fail();
    }
    fp.close();
    return res;
}
 
//запись массива в двоичный файл
bool array_write(const char* filename, const int32_t a[], int n){
    std::ofstream fp(filename, std::ios_base::binary);
    bool res = false;
    if(fp.is_open()){
        fp.write(reinterpret_cast<const char*>(&a[0]), n * sizeof(a[0]));
        res = !fp.fail();
        fp.close();
    }
    return res;
}
 
//чтение двоичного файла в массив
bool array_read(const char* filename, int32_t a[], int n){
    std::ifstream fp(filename, std::ios_base::binary);
    bool res = false;
    if(fp.is_open()){
        fp.read(reinterpret_cast<char*>(&a[0]), n * sizeof(a[0]));
        res = !fp.fail();
        fp.close();     
    }
    return res;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2017, 12:30

Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение?
Вот примерная рекурсивная функция, но я не знаю, как выйти из нее в нужный момент. void range(Node...

Как найти в двоичном дереве поиска минимальный элемент, превышающий некоторое заданное значение?
Вот примерная рекурсивная функция, но я не знаю, как выйти из нее в нужный момент. void range(Node...

В матрице A размерностью N⨯M заменить нулем максимальный по модулю элемент, в СИ
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;windows.h&gt; int main() { ...

Заменить максимальный по модулю отрицательный элемент массива нулем (Pascal -> С++)
var ar:array of integer; max,i:integer; begin; randomize; writeln('Array'); for i:=1 to...


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

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

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