Форум программистов, компьютерный форум CyberForum.ru

В двоичном файле поменять местами максимальное среди отрицательных и наибольшее среди простых - C++

Восстановить пароль Регистрация
 
Azario
3 / 3 / 1
Регистрация: 27.10.2012
Сообщений: 41
27.10.2015, 08:02     В двоичном файле поменять местами максимальное среди отрицательных и наибольшее среди простых #1
Задание
Кликните здесь для просмотра всего текста

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

Помогите, пожалуйста, исправить ошибки в данном коде, пытался написать код и чувствую где-то капитально не правильно написал, создание и вывод файла нормально работает, а вот основная задача....
Кликните здесь для просмотра всего текста

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
#include <iostream>
using namespace std;
 
FILE *f;
void print();
int solution();
int main()
{
    char s[20]; 
    cout << "File name? "; cin >> s;
    f=fopen(s, "rb");
    print();
    f=fopen(s, "rb");
    cout << solution() << endl;
    system("pause");
}
 
void print()
{int a;
    for (; fread(&a, sizeof(int), 1, f); )
        cout << a << " ";
    cout << endl;
}
int solution()
{ int a, min=1, max=1, max_i, min_i;
    for (; fread(&a, sizeof(int), 1, f); )
    {   
        for (int i=0; i<20; i++)
            if (max < a)
            {
                max = a;
                max_i = i;
            }
            if (min > a) 
            {
                min = a;
                min_i = i;
            }
    }
    
 
for (int i=0; i<1; i++)
{
    s[min_i] = max;
    s[max_i] = min
}
cout << endl;
for (int i=0; i<20; i++)
{
    cout << s[i] << " ";
}
cout << endl;
cout << "ГЊГ*ГЄГ±ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ = " << max << endl;
cout << "ГЊГЁГ*ГЁГ¬Г*ëüГ*ûé ýëåìåГ*ГІ = " << min << endl;
system("pause");
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2015, 08:02     В двоичном файле поменять местами максимальное среди отрицательных и наибольшее среди простых
Посмотрите здесь:

C++ Найти наибольший среди отрицательных и наименьший среди положительных элементов массива
C++ Среди простых чисел, не превосходящих N, найти такое, в десятичной записи которого максимальное число единиц
Матрицы. Найти максимальное значение среди буквенных символов и минимальное среди цифровых значений C++
C++ Матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами
C++ В одномерном массиве найти наибольший среди отрицательных и наименьший среди положительных элементов
В наборе чисел найти наибольшее и наименьшее среди отрицательных C++
C++ Определить наименьшее среди положительных и наибольшее среди отрицательных введенных чисел
Определить минимум среди положительных и максимум среди отрицательных чисел C++

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

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

Текущее время: 03:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru