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

Сортировка выбором на с++ - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.88
♠black heart♠
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 22
07.06.2010, 20:50     Сортировка выбором на с++ #1
Сортировка выбором. Выбрать минимальный элемент в
массиве, перенести в выходной массив на очередную позицию. Во
входном массиве все элементы от следующего за текущим до кон*
ца сдвинуть на один влево.

Добавлено через 49 минут
помогите плизззз горю.........
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2010, 20:50     Сортировка выбором на с++
Посмотрите здесь:

C++ /сортировка выбором C++
C++ Сортировка выбором
C++ сортировка выбором
Сортировка выбором C++
C++ Сортировка выбором
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
so1o
33 / 33 / 2
Регистрация: 16.11.2009
Сообщений: 192
07.06.2010, 21:58     Сортировка выбором на с++ #2
условие не понятное, по крайней мере для меня
foruss
1 / 1 / 0
Регистрация: 07.06.2010
Сообщений: 10
07.06.2010, 22:00     Сортировка выбором на с++ #3
Все что я понял, что сортировать надо выбором(например массив А), далее находить минимум из него и заполнять им массив Б, а в массиве А, все элементы сдвинуть влево о_0
Правильно?
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
08.06.2010, 02:16     Сортировка выбором на с++ #4
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
#include <iostream>
#include<iomanip>
using namespace std;
 
 
void main()
{   int dlin=-1;
    setlocale(LC_ALL,"rus");
    cout<<"длина масива?\n";
    while(dlin<1)
        cin>>dlin;
    int *arrF =new int[dlin];
    int *arr2 = new int[dlin];
    for(int i=0;i<dlin;i++)
    {
        cout<<"arrF["<<i<<"] = ";
        cin>>arrF[i];
        arr2[i]=0;
    }
    int  zam=arrF[0],index=0;
    for(int pass=0; pass<dlin; pass++ )
    {
        for(int i=0;i<dlin;i++)     // поиск минимального  в масиве 1.
            if(zam>arrF[i])
                {
                    zam=arrF[i];
                    index=i;
                }
        arr2[pass]=arrF[index];//  запись в 1 елемент нужного из масива 1 в масив 2.
        for(index;index<dlin-1;index++)// сдвиг влево
            arrF[index]=arrF[index+1];
        zam=32767;//пришлось вручную изменять на макс, так как сохранялся мин элемент.
        arrF[dlin-pass-1]=32767;//замена последнего на мего большое) - макс число для инта
    }
    for(int i=0;i<dlin;i++)
        cout<<"  arrF ["<<i<<"]="<<setw(4)<<arrF[i]
            <<"  arr2 ["<<i<<"]="<<setw(4)<<arr2[i]<<endl;
    delete [] arrF;
    delete [] arr2;
    system("pause");
}
неясно что было делать с последним элементом для 1го масива. заменял на самый большой для signed int - что б не мешал дальшей сортировки.
♠black heart♠
1 / 1 / 0
Регистрация: 31.01.2010
Сообщений: 22
08.06.2010, 10:07  [ТС]     Сортировка выбором на с++ #5
мне надо на си)))) не на с++))

я ошибся...

Добавлено через 1 минуту
Цитата Сообщение от foruss Посмотреть сообщение
Все что я понял, что сортировать надо выбором(например массив А), далее находить минимум из него и заполнять им массив Б, а в массиве А, все элементы сдвинуть влево о_0
Правильно?
да ты правильно понял так и надо ток на си мне надо))
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
08.06.2010, 12:30     Сортировка выбором на с++ #6
вроде это на С. но не уверен)
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 <iostream>
#include<iomanip>
 
 
 
void main()
{   
    int dlin=-1, *arrF,*arr2;
    setlocale(LC_ALL,"rus");
    std::cout<<"длина масива?\n";
    while(dlin<1)
        std::cin>>dlin;
    arrF = (int*) malloc (dlin*sizeof(int));
    arr2 = (int*) malloc (dlin*sizeof(int));
    for(int i=0;i<dlin;i++)
    {
        std::cout<<"arrF["<<i<<"] = ";
        std::cin>>arrF[i];
        arr2[i]=0;
    }
    std::cout<<"итоговый масив \n";
    for(int i=0;i<dlin;i++)
        std::cout<<"["<<i<<"] ="<<arrF[i]<<"   ";
    std::cout<<std::endl;
    int index=0;
    int zam=arrF[0];
    for(int pass=0; pass<dlin; pass++ )
    {
        for(int i=0;i<dlin-pass;i++)        // поиск минимального  в масиве 1.
            if(zam>arrF[i])
                {
                    zam=arrF[i];
                    index=i;
                }
        arr2[pass]=arrF[index];//  запись в 1 елемент нужного из масива 1 в масив 2.
        for(index;index<dlin-1;index++)// сдвиг влево
            arrF[index]=arrF[index+1];
        zam=32767;//пришлось вручную изменять на макс, так как сохранялся мин элемент.
        //arrF[dlin-pass-1]=32767; //замена последнего на мего большое) - макс число для инта 
    }                  //модифицировал что последний элемент не замечается.
    for(int i=0;i<dlin;i++)
    {
        std::cout<<"  arrF ["<<i<<"]="<<std::setw(4)<<arrF[i];
        std::cout<<"  arr2 ["<<i<<"]="<<std::setw(4)<<arr2[i]<<std::endl;
    }
    free (arrF);
    free (arr2);
    system("pause");
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
08.06.2010, 12:41     Сортировка выбором на с++ #7
Цитата Сообщение от mrMRak Посмотреть сообщение
вроде это на С
одномерный массив первые четыре поста - та же история!

Цитата Сообщение от mrMRak Посмотреть сообщение
C
1
2
#include <iostream> 
#include<iomanip>
нету в С ни <iostream> ни <iostream.h> - это исключительно к С++ относится. Это там классы потоков cout для вывода данных и cin для ввода. Соответственно и <iomanip> нет, т.к. за отсутствием <iostream> и манипулировать как-то нечем... За то в С есть <stdio.h> и функции printf() putc() puts() etc... для вывода + функции scanf() getc() gets() etc... для ввода (на самом деле несколько больше и тех и других)...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2010, 13:18     Сортировка выбором на с++
Еще ссылки по теме:

C++ Сортировка выбором
Сортировка выбором C++
C++ Сортировка выбором

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

Или воспользуйтесь поиском по форуму:
mrMRak
38 / 38 / 3
Регистрация: 02.06.2010
Сообщений: 105
08.06.2010, 13:18     Сортировка выбором на с++ #8
спс за советы.

надеюсь так лучше?

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
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
 
void main()
{       
        int dlin=-1, *arrF,*arr2;
        printf("длина масива?\n");
        while(dlin<1)
                scanf("%d",&dlin);
        arrF = (int*) malloc (dlin*sizeof(int));
        arr2 = (int*) malloc (dlin*sizeof(int));
        for(int i=0;i<dlin;i++)
        {
                printf("arrF[ %d  ]=)",i);
                scanf("%d",&arrF[i]);
                arr2[i]=0;
        }
        printf("итоговый масив \n");
        for(int i=0;i<dlin;i++)
                printf("[ %d ] = ",arrF[i]);
        printf("\n");
        int index=0;
        int zam=arrF[0];
        for(int pass=0; pass<dlin; pass++ )
        {
                for(int i=0;i<dlin-pass;i++)            // поиск минимального  в масиве 1.
                        if(zam>arrF[i])
                                {
                                        zam=arrF[i];
                                        index=i;
                                }
                arr2[pass]=arrF[index];//  запись в 1 елемент нужного из масива 1 в масив 2.
                for(index;index<dlin-1;index++)// сдвиг влево
                        arrF[index]=arrF[index+1];
                zam=32767;//пришлось вручную изменять на макс, так как сохранялся мин элемент.
                //arrF[dlin-pass-1]=32767; //замена последнего на мего большое) - макс число для инта 
        }                                  //модифицировал что последний элемент не замечается.
        for(int i=0;i<dlin;i++)
        {
               printf("  arrF [ %d ]= %d",i,arrF[i]);
               printf("  arrF [ %d ]= %d \n",i,arr2[i]);
        }
        free (arrF);
        free (arr2);
       getch();
}
Yandex
Объявления
08.06.2010, 13:18     Сортировка выбором на с++
Ответ Создать тему
Опции темы

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