0 / 0 / 0
Регистрация: 15.11.2011
Сообщений: 22

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

18.04.2012, 16:06. Показов 5385. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru