Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Sylar9
134 / 55 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 1
1

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

22.11.2011, 08:57. Просмотров 369. Ответов 7
Метки нет (Все метки)

Помогите понять почему не правильно работает сортировка в этой программе
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.
Вроде бы код правильный

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

Правильно ли работает программа?
Программа должна определить маршрут заданной длины из заданной вершины. Но я...

Программа работает не правильно
Задача:Найти среди 10 русских существительных отглагольные(типа хождение) и...

Не правильно работает программа
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() {...

Не правильно работает программа
Написал программу но она чего то не правильно работает вот код: #include...

Программа работает не совсем правильно
Вообщем вот условие. Создать класс, содержащий сведения о количестве изделий,...

7
asd321
Мохаммед Али
129 / 67 / 5
Регистрация: 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;
0
Sylar9
134 / 55 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 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;
}
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 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;
}
0
Sylar9
134 / 55 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 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;
}
а что ты исправил? вложий цикл убрал?
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.11.2011, 09:24 6
Цитата Сообщение от Sylar9 Посмотреть сообщение
а что ты исправил? вложий цикл убрал?
Работает?
0
Sylar9
134 / 55 / 13
Регистрация: 04.09.2011
Сообщений: 1,952
Записей в блоге: 1
22.11.2011, 09:28  [ТС] 7
Цитата Сообщение от Thinker Посмотреть сообщение
Работает?
ДА!!!!
0
Thinker
Эксперт С++
4233 / 2207 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
22.11.2011, 09:30 8
Цитата Сообщение от Sylar9 Посмотреть сообщение
ДА!!!!
Нельзя смешивать ввод массива с алгоритмом сортировки, черевато ошибками, что у вас и произошло, я просто вынес ввод массива за алгоритм сортировки и все.
0
22.11.2011, 09:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2011, 09:30

Почему программа не работает правильно?
У меня почему-то не корректно отображаются надписи в консоли.

Немного не правильно работает программа?
int main() { cout&lt;&lt;&quot;Let's go!\n\n\n&quot;; double y; ...

Программа не всегда работает правильно
Всем добрый вечер. Реализовал программу, подсчитывающую корень уравнения...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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