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

Не правильно работает программа(Сортировка) - C++

Восстановить пароль Регистрация
 
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.11.2011, 08:57     Не правильно работает программа(Сортировка) #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;
int main()
{
   int m[1000];
   int n;
   int i;
   int temp;
   cout << "Enter the number of elements" << endl;
   cin >> n;
   for (i=0; i<n; i++)
   {       
       
       cout << "a[" << i << "]=  ";
       cin >> m[i];
       
       for (int j=0; j<n-1; j++)
           if(m[j]>m[j+1])
           {
              temp = m[j];
              m[j] = m[j+1];
              m[j+1] = m[j];
           
           }
 
   }
   cout << "Sort" << endl;  
   for (i=0; i<n; i++)
       cout << m[i];
 
    system("pause");
    return 0;
}
Ввожу числа 85 102 36 74 5, а выводит на экран числа -0,0859984454.
Вроде бы код правильный

Скрин на программу:
Не правильно работает программа(Сортировка)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2011, 08:57     Не правильно работает программа(Сортировка)
Посмотрите здесь:

Программа работает, не не совсем правильно... C++
Правильно ли работает программа? C++
Не правильно работает программа C++
C++ Программа работает не правильно
C++ Программа не всегда работает правильно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
asd321
Мохаммед Али
 Аватар для asd321
127 / 65 / 1
Регистрация: 14.08.2009
Сообщений: 916
22.11.2011, 09:04     Не правильно работает программа(Сортировка) #2
C++
1
2
3
   temp = m[j];
                          m[j] = m[j+1];
                          m[j+1] = m[j];
что за фигня это может вы так хотели написать?
C++
1
2
3
   temp = m[j];
                          m[j] = m[j+1];
                          m[j+1] = temp;
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.11.2011, 09:08  [ТС]     Не правильно работает программа(Сортировка) #3
Цитата Сообщение от asd321 Посмотреть сообщение
C++
1
2
3
   temp = m[j];
                          m[j] = m[j+1];
                          m[j+1] = m[j];
что за фигня это может вы так хотели написать?
C++
1
2
3
   temp = m[j];
                          m[j] = m[j+1];
                          m[j+1] = temp;
Исправил все равно результат выводит такие цифры -0,369541

Вот код исправленный
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;
int main()
{
   int m[1000];
   int n;
   int i;
   int temp;
   cout << "Enter the number of elements" << endl;
   cin >> n;
   for (i=0; i<n; i++)
   {       
       
       cout << "a[" << i << "]= ";
       cin >> m[i];
       
       for (int j=0; j<n-1; j++)
           if(m[j]>m[j+1])
           {
              temp = m[j];
              m[j] = m[j+1];
              m[j+1] = temp;
           
           }
 
   }
   cout << "Sort" << endl;  
   for (i=0; i<n; i++)
       cout << m[i];
 
    system("pause");
    return 0;
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.11.2011, 09:17     Не правильно работает программа(Сортировка) #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
#include <iostream>
using namespace std;
int main()
{
   int m[1000];
   int n;
   int i;
   int temp;
   cout << "Enter the number of elements" << endl;
   cin >> n;
   for (i=0; i<n; i++)
   {       
           
           cout << "a[" << i << "]= ";
           cin >> m[i];
   }
   for (i=0; i<n; i++)
   {       
           for (int j=0; j<n-1; j++)
                   if(m[j]>m[j+1])
                   {
                      temp = m[j];
                          m[j] = m[j+1];
                          m[j+1] = temp;
                   
                   }
 
   }
   cout << "Sort" << endl;  
   for (i=0; i<n; i++)
           cout << m[i];
 
    system("pause");
        return 0;
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.11.2011, 09:20  [ТС]     Не правильно работает программа(Сортировка) #5
Цитата Сообщение от Thinker Посмотреть сообщение
Этот код и не будет работать, потому что за один проход по массиву методом пузырька нельзя отсортировать массив. Вот:

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;
int main()
{
   int m[1000];
   int n;
   int i;
   int temp;
   cout << "Enter the number of elements" << endl;
   cin >> n;
   for (i=0; i<n; i++)
   {       
           
           cout << "a[" << i << "]= ";
           cin >> m[i];
   }
   for (i=0; i<n; i++)
   {       
           for (int j=0; j<n-1; j++)
                   if(m[j]>m[j+1])
                   {
                      temp = m[j];
                          m[j] = m[j+1];
                          m[j+1] = temp;
                   
                   }
 
   }
   cout << "Sort" << endl;  
   for (i=0; i<n; i++)
           cout << m[i];
 
    system("pause");
        return 0;
}
а что ты исправил? вложий цикл убрал?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.11.2011, 09:24     Не правильно работает программа(Сортировка) #6
Цитата Сообщение от Sylar9 Посмотреть сообщение
а что ты исправил? вложий цикл убрал?
Работает?
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
22.11.2011, 09:28  [ТС]     Не правильно работает программа(Сортировка) #7
Цитата Сообщение от Thinker Посмотреть сообщение
Работает?
ДА!!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 09:30     Не правильно работает программа(Сортировка)
Еще ссылки по теме:

C++ Не правильно работает программа
C++ Почему программа не работает правильно?
C++ Программа работает не совсем правильно

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

Или воспользуйтесь поиском по форуму:
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.11.2011, 09:30     Не правильно работает программа(Сортировка) #8
Цитата Сообщение от Sylar9 Посмотреть сообщение
ДА!!!!
Нельзя смешивать ввод массива с алгоритмом сортировки, черевато ошибками, что у вас и произошло, я просто вынес ввод массива за алгоритм сортировки и все.
Yandex
Объявления
22.11.2011, 09:30     Не правильно работает программа(Сортировка)
Ответ Создать тему
Опции темы

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