Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22

Файл: Поменять местами минимальный и максимальный элементы.

18.04.2012, 16:06. Показов 5351. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан файл вещественных чисел. Поменять в нём местами минимальный и максимальный элементы. На ум приходит только перенести все числа в массив, поменять в нём местами мин. и макс. элементы, внести полученный результат в файл. Но как это реализовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.04.2012, 16:06
Ответы с готовыми решениями:

Поменять местами максимальный и минимальный элементы
А вот ету задачку поможете решить????? Поменять местами максимальный и минимальный элементы.

Поменять местами максимальный и минимальный элементы
Помогите написать программу : Дан массив из восьми элементов. Поменять местами максимальный и минимальный элементы. Вывести на экран...

Поменять местами минимальный и максимальный элементы вектора
ребят как написать код, чтобы в векторе V менялись местами минимальный и максимальный элементы

11
 Аватар для Betokuha
32 / 29 / 1
Регистрация: 05.03.2012
Сообщений: 114
18.04.2012, 16:36
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
#include <vcl.h>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
{
  const int count = 10;
  float arr[count];
  float a;
 
 
  for (int i = 0; i < count; i++)
  {
      cout<<i+1<<"/"<<count<<": ";
      cin>>a;
       arr[i] = a;
    cout<<arr[i]<<" ";
  }
 
   cout<<endl;
 
int min = 0, max = 0;
 
for (int i = 0; i < count; i++)
{
     if (arr[i] < arr[min])
         min = i;
 
    if (arr[i] > arr[max])
        max = i;
}
 
    int tmp = arr[max];
    arr[max] = arr[min];
    arr[min]  = tmp;
 
 
  for (int i = 0; i < count; i++)
  {
    cout<<arr[i]<<" ";
  }
 
   cout<<endl;
getch();
 
}
Вот держи!
0
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
18.04.2012, 17:57  [ТС]
Это не то
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 19:16
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
#include <fstream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <iostream>
 
int main()
{
    std::ifstream fin("in.txt");
    std::vector<double> v
    (
        std::move(std::istream_iterator<double>(fin)),
        std::istream_iterator<double>()
    );
    fin.close();
    if(v.size() > 1)
        std::iter_swap
        (
            std::min_element(v.begin(), v.end()),
            std::max_element(v.begin(), v.end())
        );
    std::ofstream fout("out.txt");
    std::copy(v.begin(), v.end(), std::ostream_iterator<double>(fout, " "));
    fout.close();
    return 0;
}
0
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
18.04.2012, 20:09  [ТС]
а можно без вектора обойтись?
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.04.2012, 20:19
Tewe, можно.
0
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
18.04.2012, 22:10  [ТС]
Можете написать, как будет выглядеть программа если не использовать вектор?
0
20 / 4 / 1
Регистрация: 17.11.2009
Сообщений: 142
18.04.2012, 22:37
Откуда ты знаешь, сколько чисел у тебя в файле? Может их там миллион будет. Не будешь же ты выделять столько памяти под массив. Поэтому используется вектор, чтобы постепенно память увеличивать, а не сразу занимать огромный кусок.
0
0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22
18.04.2012, 23:35  [ТС]
А если, допустим в файле будет 10 чисел?
0
14 / 14 / 6
Регистрация: 26.11.2010
Сообщений: 235
19.04.2012, 02:37
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
#include <iostream>
#include <fstream>
 
int main()
{
    int *a, count = 0, max, min, ind_max = 0, ind_min = 0, count2 = 0, temp = 0, i = 0;
    std::ifstream out("1.txt");
    while(!out.eof())
    {
        out.get();
        count++;
    }
    a = new int [ count / 2 ];
    count = 0;
    out.close();
    std::ifstream out2("1.txt");
    while(out2>>a[count])
    {
        count++;
    }
    out2.close();
    max = a[0];
    min = a[0];
        
    for(int i = 0; i < count ; i++)
    {
        if(max < a[i])
        {
            max = a[i];
            ind_max = i;
        }
        if(min > a[i])
        {
            min = a[i];
            ind_min = i;
        }
    }
    temp = a[ind_max];
    a[ind_max] = a[ind_min];
    a[ind_min] = temp;
 
    
    std::ofstream in("1.txt", std::ios_base::trunc);
    while(i != count)
    {
        in<<a[i]<<" ";
        i++;
    }
    in.close();
    return 0;
}
Как-то так.
0
873 / 771 / 173
Регистрация: 11.01.2012
Сообщений: 1,942
19.04.2012, 08:48
Цитата Сообщение от Tewe Посмотреть сообщение
Дан файл вещественных чисел
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
#include <iostream>
#include <fstream> 
#include <cctype> 
 
int main()
{     
    size_t j = 0,i = 0, posmin = 0, posmax = 0;
    double maxdouble = 0,
          mindouble = 3;
    char text [256],
        *token = NULL,
        tmp[30] = "",
        values[20][256];
 
        std::fstream file("file.txt",std::ios::in|std::ios::out);
        if (!file) std::cerr << "Error in opening file !!!" << std::endl;
 
        else   {
 
                while (file.get(text[i]))  i++;  
                           text[i] = '\0'; i = 0;
 
                          token = strtok(text," \t\r\n");
               while(token){
                          
                          strcpy(values[i],token);
                     if(atof(values[i]) > maxdouble) 
                     {
                           maxdouble = atof(values[i]) ;posmin = i;}
                     if(atof(values[i]) < mindouble) 
                     {
                          mindouble = (atof(values[i])) ;posmax = i;}
                
                          token = strtok(NULL," \t\r\n");
                          i++;
                     }
                         strcpy(tmp ,values[posmin]) ;
                         strcpy(values[posmin], values[posmax]);
                         strcpy(values[posmax], tmp);
     
        
                         file.clear();      
    
                         file.seekp(std::ios::beg);
         
                         for(j = 0;j < i; j++){
                         file <<  values[j] << ' ';
                         std::cout << values[j] << ' '; }
                         file.close();
 
                     }
        
                  system("pause");
                  return 0; 
}

________________________________________ ________________________________________
0
14 / 14 / 6
Регистрация: 26.11.2010
Сообщений: 235
19.04.2012, 13:52
Цитата Сообщение от Tewe Посмотреть сообщение
Дан файл вещественных чисел.
Цитата Сообщение от Sick2 Посмотреть сообщение
int *a
Ну тогда вместо int, double.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.04.2012, 13:52
Помогаю со студенческими работами здесь

Поменять местами минимальный и максимальный элементы массива
Привет всем, помогите составить программку для этой задачи. Поменять местами минимальный и максимальный элементы массива. Использовать...

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

Поменять местами минимальный и максимальный элементы массива
Добрый день! Проблема заключается в следующем: Дан массив a из 10 элементов,нужно найти минимальное и максимальное число и после того...

Поменять местами минимальный и максимальный элементы массива
#include &lt;iostream&gt; using namespace std; void main () { int a; int i,k=0,g,n,min,max; cin&gt;&gt;n;

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru