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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
илья1995
3 / 3 / 1
Регистрация: 17.10.2011
Сообщений: 169
09.01.2013, 02:04     Сортировка одномерного массива методом выбора #1
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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
int  main()
{ int imin,i,j,buf;
    int s;
cout<<"vvedite razmer massiva ";
cin>>s;
 int *a = new int[s];
for ( i = 0; i < s; i++)
    {
       a[i]=rand() % 100; 
       cout<<a[i]<<"   ";
    }
for ( i = 0; i < s; i++)
{ imin = i;
for ( j = i+1; j < s; j++)
     if(a[j]< a[imin])
                imin = j;
}
if(imin != i)
        {
            buf = a[imin];
            a[imin] = a[i];
            a[i] = buf;
        }
cout<<"Sorted array               ";
for ( i = 0; i < s; i++);
cout<<a[i]<<" ";
system("pause");
return 0;
}
вот написал программу которая сортирует одномерный массив по возрастанию методом выбора , но после сортировки выводит почему то только последнее число (самое большое в массиве), а предыдущих нету
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 02:04     Сортировка одномерного массива методом выбора
Посмотрите здесь:

C++ сортировка массива методом выбора в с++
C++ Сортировка массива слов методом прямого выбора
Составить программу сортировки одномерного числового массива от начала массива к элементу с заданным номером по убыванию (методом выбора) C++
C++ Сортировка одномерного массива методом слияния с минимальным количеством сравнений
Сортировка двумерного массива методом Выбора. Select sort C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.01.2013, 06:32     Сортировка одномерного массива методом выбора #2
См комментарии:
Цитата Сообщение от илья1995 Посмотреть сообщение
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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
int main()
{ int imin,i,j,buf;
 int s;
cout<<"vvedite razmer massiva ";
cin>>s;
 int *a = new int[s];
for ( i = 0; i < s; i++)
 {
 a[i]=rand() % 100; 
 cout<<a[i]<<" ";
 }
for ( i = 0; i < s; i++)
{ imin = i;
for ( j = i+1; j < s; j++)
 if(a[j]< a[imin])
 imin = j;
}// эту фигурную скобку отсюда убрать
if(imin != i)
 {
 buf = a[imin];
 a[imin] = a[i];
 a[i] = buf;
 }
// и вставить сюда
cout<<"Sorted array ";
for ( i = 0; i < s; i++);// отсюда убрать последний оператор ;
cout<<a[i]<<" ";
system("pause");
return 0;
}
илья1995
3 / 3 / 1
Регистрация: 17.10.2011
Сообщений: 169
09.01.2013, 10:22  [ТС]     Сортировка одномерного массива методом выбора #3
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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
int main()
{ int imin,i,j,buf;
 int s;
cout<<"vvedite razmer massiva ";
cin>>s;
 int *a = new int[s];
for ( i = 0; i < s; i++)
 {
 a[i]=rand() % 100; 
 cout<<a[i]<<" ";
 }
for ( i = 0; i < s; i++)
{ imin = i;
for ( j = i+1; j < s; j++)
 if(a[j]< a[imin])
 imin = j;
// эту фигурную скобку отсюда убрать
if(imin != i)
 {
 buf = a[imin];
 a[imin] = a[i];
 a[i] = buf;
 }
for ( i = 0; i < s; i++);// и вставить сюда
cout<<"Sorted array ";
// отсюда убрать последний оператор ;
cout<<a[i]<<" ";
system("pause");
return 0;
}
}
вот вроде бы исправил как сказали но не работает, точнее работает но неправильно выводит какой ответ неправильный
Миниатюры
Сортировка одномерного массива методом выбора  
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.01.2013, 16:40     Сортировка одномерного массива методом выбора #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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
int main()
{ int imin,i,j,buf;
 int s;
cout<<"vvedite razmer massiva ";
cin>>s;
 int *a = new int[s];
for ( i = 0; i < s; i++)
 {
 a[i]=rand() % 100; 
 cout<<a[i]<<" ";
 }
for ( i = 0; i < s; i++)
{ imin = i;
for ( j = i+1; j < s; j++)
 if(a[j]< a[imin])
 imin = j;
// эту фигурную скобку отсюда убрать
if(imin != i)
 {
 buf = a[imin];
 a[imin] = a[i];
 a[i] = buf;
 }
}// и вставить сюда
cout<<"Sorted array ";
for ( i = 0; i < s; i++)// отсюда убрать последний оператор ;
cout<<a[i]<<" ";
system("pause");
return 0;
}
илья1995
3 / 3 / 1
Регистрация: 17.10.2011
Сообщений: 169
09.01.2013, 16:49  [ТС]     Сортировка одномерного массива методом выбора #5
Цитата Сообщение от valeriikozlov Посмотреть сообщение
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
#include <iostream>
using namespace std;
#include <math.h>
#include <conio.h>
int main()
{ int imin,i,j,buf;
 int s;
cout<<"vvedite razmer massiva ";
cin>>s;
 int *a = new int[s];
for ( i = 0; i < s; i++)
 {
 a[i]=rand() % 100; 
 cout<<a[i]<<" ";
 }
for ( i = 0; i < s; i++)
{ imin = i;
for ( j = i+1; j < s; j++)
 if(a[j]< a[imin])
 imin = j;
// эту фигурную скобку отсюда убрать
if(imin != i)
 {
 buf = a[imin];
 a[imin] = a[i];
 a[i] = buf;
 }
}// и вставить сюда
cout<<"Sorted array ";
for ( i = 0; i < s; i++)// отсюда убрать последний оператор ;
cout<<a[i]<<" ";
system("pause");
return 0;
}
спасибо сейчас все работает, а ваши Коментарии нужно исправлять сейчас?

Добавлено через 6 минут
я так понял дело было в 1 фигурной скобке
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.01.2013, 17:09     Сортировка одномерного массива методом выбора #6
Цитата Сообщение от илья1995 Посмотреть сообщение
а ваши Коментарии нужно исправлять сейчас?
можете их удалить
Yandex
Объявления
09.01.2013, 17:09     Сортировка одномерного массива методом выбора
Ответ Создать тему
Опции темы

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