Всем доброго времени суток,
Есть такая вот задачка:
Разработать программу для заполнения файла целыми значениями, вводимыми с клавиатуры, окончание ввода – пустая строка. Проверить, стоит ли в файле минимальное значение раньше максимального, и если это не так, поменять их местами.
Файл прога заполняет, значения считывает и присваивает в min и max, но о том, чтобы хотя бы просто поменять местами min с max'ом (Не учитывая их позиции) речи пока не идёт. Прога пытается это сделать, но выходит не то, что требуется.
Подскажите, пожалуйста, что и где не так?
Заранее спасибо.
#include "stdafx.h"
#include <clocale>
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
using namespace std;
int main()
{
setlocale(0, "");
int s = 0, s2 = 0, p, min = 0, max = 0;
string S , R;
fstream F;
F.open("Numbers.txt", ios::in | ios::out);
do {
int k = 0;
cout << "Введите число: ";
cin >> k;
F << k << endl;
s++;
} while (s < 5);
F.seekg(0, SEEK_SET);
while (!F.eof())
{
F >> p;
if (p < min) min = p;
if (p > max) max = p;
}
F.close();
F.open("Numbers.txt", ios::in | ios::out);
F.seekg(0, SEEK_SET);
while (s2 < 5)
{
F >> p;
if (p == min)
{
F.seekp(s2) << max;
s2++;
}
else if (p == max)
{
F.seekp(s2) << min;
s2++;
}
else s2++;
}
F.close();
system("pause");
return 0;
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
В книге Бьярне Страуструпа "ПрограммированиеПринципы и практика с использованием C++, 2-е издание
Как обнулить значение элемента массива A, если в массиве B существует такое значение, которое при сложении с текущим элементом массива A дает...