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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dimoncheg
10 / 10 / 2
Регистрация: 18.10.2012
Сообщений: 220
#1

Сортировка выбором (метод прямого выбора). Ошибка в задаче - C++

24.02.2014, 17:45. Просмотров 409. Ответов 4
Метки нет (Все метки)

Привет. У меня есть программка решение на задачку "Первые десять элементов массива М(30) отсортировать в порядке возрастания, а остальные в порядке убывания." В задаче два условия. Одно - сортируем первые 10, а второе - остальные. Так вот. Одно из них нужно сделать методом пузырька, а другое - методом прямого выбора. Во втором коде я попытался сделать двумя способами.. Что не так? Пожалуйста, подскажите.

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
#include <iostream>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main ()
{
    const int size= 30;
    int a[size];
    srand(time(NULL));
    
    for (int i = 0; i < size; i++)
       a[i] = rand() % 100;
       
    for (int i = 0; i < size; i++)
       cout << a[i] << "  ";
       
    for (int i = 0; i < size; i++)
       for (int j = i+1; j < size; j++)
       
      if (a[i] > a[j] & i<10)
      {
         int buf = a[i];
         a[i] = a[j];
         a[j] = buf;
      }
      
      for (int i = 0; i < size; i++)
       for (int j = i+1; j < size; j++)
       
      if (a[i] < a[j] & i>=10)
      {
         int buf = a[i];
         a[i] = a[j];
         a[j] = buf;
      }
 
      
   cout << endl << endl;
    for (int i = 0; i < size; i++)
       cout << a[i] << "  ";
    getch();
    return 0;
}
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 <conio.h>
#include <time.h>
#include <stdlib.h>
 
using namespace std;
 
int main ()
{
    const int size= 30;
    int a[size];
    srand(time(NULL));
    
    for (int i = 0; i < size; i++)
       a[i] = rand() % 100;
       
    for (int i = 0; i < size; i++)
       cout << a[i] << "  ";
       
    for (int i = 0; i < size; i++)
       for (int j = i+1; j < size; j++)
       
      if (a[i] > a[j] & i<10)
      {
         int buf = a[i];
         a[i] = a[j];
         a[j] = buf;
      }
      
for(int i = 0; i < size; ++i) 
    { 
        int pos = i; 
        tmp = arr[i];
        for(int j = i + 1; j < size; ++j) 
        {
            if (arr[j] < tmp) 
           {
               pos = j; 
               tmp = arr[j]; 
           }
        }
        arr[pos] = arr[i]; 
        arr[i] = tmp; 
    }
      
   cout << endl << endl;
    for (int i = 0; i < size; i++)
       cout << a[i] << "  ";
    getch();
    return 0;
}
Добавлено через 25 минут
upup
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2014, 17:45     Сортировка выбором (метод прямого выбора). Ошибка в задаче
Посмотрите здесь:

сортировка (метод прямого выбора) - C++
Народ, подскажите почему неправильно считает количество перестановок М? Уже час голову ломаю(#include &lt;stdio.h&gt; #include &lt;conio.h&gt; ...

Метод прямого выбора - C++
Задача простая Используя в качестве массива набор из 8 букв своих фамилии, имени, отчества, определить на каждом шаге в методе прямого...

Сортировка методом прямого выбора - C++
Помогите пожалуйста! Есть код, но в конце сортировка сбивается. есть массив: A={1, 6, 9, 7, 2, 0, 4, 3, 5, 8} после выполнения моего...

Сортировка массива методом прямого выбора - C++
Объясните пожалуйста как работает эта программа. Задание: Массив из 5 целых чисел заполнить с клавиатуры. Произвести сортировку...

Сортировка массива слов методом прямого выбора - C++
Помогите пожалуйста сделать сортировку массива слов методом прямого выбора. То есть у меня есть массив слов, и мне сначала для сортировки...

сортировка чисел методом прямого выбора и пузырька - C++
Надо отсортировать цисла массива с рандомом что бы положительное число росло, а отрицательное число уменьшалось. 1)Метод прямого выбора ...

Сортировка четных элементов масссива с помощью прямого выбора - C++
сортировка с помощью прямого выбора Четные элементы в одномерном массиве

Алгоритмы сортировки: прямые, улучшенные (Сортировка с помощью прямого включения (метод простых вставок)) - C++
Задание 1. Сортировка с помощью прямого включения (метод простых вставок). Методические указания к выполнению задания 1 ...

Сортировка выбором, ошибка в коде - C++
Не кидайтесь тапками, решила вспомнить си++.Код не рабочий. Ошибка в последней строке. #include &lt;iostream&gt; using namespace std; ...

Сортировка одномерного массива выбором - в чем ошибка - C++
Всем привет. Пытаюсь написать алгоритм, который будет сортировать одномерный массив заданной длины: 1. находить минимум среди элементов, ...

В чем ошибка? Ссртировка выбором и сортировка вставкой - C++
108-ая строка. error C2372: a: переопределение; различные типы косвенного обращения 110-ая строка. error C2440: =: невозможно...

Использование хэшсета в задаче выбора всех попарно различных элементов массива - C++
Можно пример использования хэшсета в задачи выбора всех попарно различных элементов массива ? Т.е. чтоб небыло одиннаковых. Я читал, что...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
24.02.2014, 18:44     Сортировка выбором (метод прямого выбора). Ошибка в задаче #2
Цитата Сообщение от dimoncheg Посмотреть сообщение
for(int i = 0; i < size; ++i)
* * {
* * * * int pos = i;
* * * * tmp = arr[i];
* * * * for(int j = i + 1; j < size; ++j)
* * * * {
* * * * * * if (arr[j] < tmp)
* * * * * *{
* * * * * * * *pos = j;
* * * * * * * *tmp = arr[j];
* * * * * *}
* * * * }
* * * * arr[pos] = arr[i];
* * * * arr[i] = tmp;
* * }
Замени for на это
C++
1
for(int i = 10; i < size; ++i)
dimoncheg
10 / 10 / 2
Регистрация: 18.10.2012
Сообщений: 220
24.02.2014, 19:05  [ТС]     Сортировка выбором (метод прямого выбора). Ошибка в задаче #3
Amandosov, спасибо, упустил это! А вот сейчас две ошибки выдает:

33 9 C:\Users\Пользователь\Desktop\4.cpp [Error] 'tmp' was not declared in this scope
33 15 C:\Users\Пользователь\Desktop\4.cpp [Error] 'arr' was not declared in this scope

Не знаю что делать. Вроде пространство имен есть, и в иостриме без h. А в чем дело?
Amandosov
Знаток
156 / 156 / 65
Регистрация: 18.11.2012
Сообщений: 411
Записей в блоге: 2
24.02.2014, 19:25     Сортировка выбором (метод прямого выбора). Ошибка в задаче #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1) надо объявить переменную: int tmp;
2) заменить аrr[...] на a[...]
dimoncheg
10 / 10 / 2
Регистрация: 18.10.2012
Сообщений: 220
24.02.2014, 19:44  [ТС]     Сортировка выбором (метод прямого выбора). Ошибка в задаче #5
Amandosov, спасибо! по-больше бы таких отзывчивых и понимающих людей как Вы
P.S кстати, в 36 строчке нужно было еще знак сменить (правильно: if (a[j] > tmp) ), а то по возрастанию шло.
Yandex
Объявления
24.02.2014, 19:44     Сортировка выбором (метод прямого выбора). Ошибка в задаче
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru