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

Сортировка пузырьком, в чем ошибка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как остановить цикл ? http://www.cyberforum.ru/cpp-beginners/thread699962.html
у меня есть цикл : do{ cout<<"vvedite celoe chislo: "<<endl; cin>>a; for(i=0; i<47; i++) if (a%mas==0) cout<<"prostie mnozhiteli chisla a: "<<mas<<endl; }while(...);
C++ Разбить целое число на простые множители с помощью рекурсивного алгоритма Мне нужно разбить целое число на простые множители, этот алгоритм должен быть обязательно рекурсивным.. Помогите пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread699960.html
Поиск в ширину или глубину C++
Лабораторная работа ТЕОРИЯ ГРАФОВ. РАСКРАСКА НЕОРИЕНТИРОВАННЫХ ГРАФОВ Цель работы: изучить особенности неориентированных графов и основные определения; научиться находить хроматическое число и хроматический класс для графа. Задачи: Написать программу (в произвольно выбранной среде программирования), которая реализует поиск хроматического числа, хроматического класса и способов раскраски...
C++ Алгоритм Витерби
Нужно реализовать алгоритм свёрточного кодирования и алгоритм декодирования на основе ММП. Описание свёрточного алгоритма: Для начала выбираем параметры кодирования. Они выбираются один раз и будут постоянными для всей программы. k - количество бит в сообщении, которое передаётся на регистр; n - количество бит в закодированном сообщении (k<n); K - длина регистра; g:\{0,1\}^K\to \{0,1\}^n,...
C++ Заполнение двумерного массива без вложенных циклов http://www.cyberforum.ru/cpp-beginners/thread699949.html
Даны два числа n и m. Создайте двумерный массив int A, заполните его таблицей умножения A=i*j и выведите на экран. При этом нельзя использовать вложенные циклы, все заполнение массива должно производиться одним циклом, например, for(i=0;i<n*m;++i). Как такое можно реализовать? Нужно каким-то образом плясать от индекса, как мне кажется, но вот как?
C++ Выполнить кольцевой сдвиг элементов массива не понимаю как делать задание,туго идет. И вообще тяжело(( Помогите если можете)) Вот задание: Дан массив действительных чисел размером N и целое число К. Если в исходном массиве чисел больше чем К, то в исходном массиве выполнить кольцевой сдвиг его элементов так, чтобы первый максимальный элемент этого массива оказался на K-ом месте. Кольцевой сдвиг массива выполняется всеми его... подробнее

Показать сообщение отдельно
barmagloteot
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 29
17.11.2012, 04:24  [ТС]     Сортировка пузырьком, в чем ошибка
Цитата Сообщение от Croessmah Посмотреть сообщение
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
#include <iostream>
using std::cout;
using std::endl;
int main ( )
{
    const int size=25;
  int m[size] = {-45,89,23,-67,12,97,0,45,-39,3,-11,78,-56,73,-80,92,-20,31,19,-44,55,39,-49,13,-2};
  int i; 
  for (i=1;i<size;++i)
  {
      for(int j=1;j<size;j++){
        if (m[i]<m[i-1])
        {
            int temp=m[i];
            m[i]=m[i-1];
            m[i-1]=temp;
            i=0;
            }
      }
  }  
  int c;
  for (c=0; c<size; ++c)
    cout<<m[c]<<endl; 
  system("pause");
    return 0;
}
Ну да, я уже понял что второй for нужен, и тогда все работает. Только не понял почему так. Мой вариант сортирует все кроме первого числа, вот чего понять не могу.



Цитата Сообщение от Croessmah Посмотреть сообщение
может имелось ввиду
C++
1
2
for(int i=0;i<size;++i)
   cin>>m[i];
Не?
Нет, там задача именно научится реализовывать сортировку. Я же замахаюсь каждый раз при отладке 25 чисел вводить.
 
Текущее время: 11:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru