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

Сортировка методом четных и нечетных транспозиций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти минимальные элементы в строках и столбцах массива, содержащих нули http://www.cyberforum.ru/cpp-beginners/thread1303048.html
есть массив с числами, надо пройдя по нему найти нули, и в этой строке и столбце, где нуль, найти минимальные значения, эти элементы не должны быть этим элементом(то есть они могут нулю равняться, но индексация у них другая должна быть) и потом надо сложить эти два элемента. У меня цикл один раз прошел и всё, но подсчитал верно. void tetta(int array,int n,int m) { int...
C++ Экземпляр в хедере. Обьект в меин. Функция в cpp модифицирует поле обьекта. Как сделать? Как сделать что бы void modif() изменял значение поля hours для обьекта st2. Есть 3 файла: 1.h 2.cpp main.cpp 1.h class student{ public: http://www.cyberforum.ru/cpp-beginners/thread1303045.html
C++ Прочитать файл в бинарном режиме с записью результата в string
Привет, как можно прочитать файл в бинарном режиме, но чтоб каждый байт в двоичной СС записывало в переменную типа string ?
C++ Задача www.programmr.com
Всем доброго времени суток! Решаю потихонечку задачки и уже не первая вызывает вопрос. #include <iostream> using namespace std; class temp { int value;
C++ Четырехугольники и функция http://www.cyberforum.ru/cpp-beginners/thread1303012.html
Пусть дано N произвольных четырехугольников, заданных координатами своих вершин. Найдите четырехугольник с максимальной площадью. Используйте функцию для вычисления площади четырехугольника. Выполнение программы через функцию.
C++ Определить, каких букв (строчных или прописных) больше в заданном тексте, и преобразовать следующим образом Дан текст. Определите, каких букв (строчных или прописных) в нем больше, и преобразуйте следующим образом: если больше прописных букв, чем строчных, то все буквы преобразуются в прописные; если больше строчных, то все буквы преобразуются в строчные; если поровну и тех и других — текст остается без изменения. подробнее

Показать сообщение отдельно
assembler2014
3 / 3 / 3
Регистрация: 16.10.2014
Сообщений: 28
17.11.2014, 19:10     Сортировка методом четных и нечетных транспозиций
Здравствуйте. Ну во-первых, обмен элементов неправильный
у вас
C++
1
2
3
int m=Mas[i];
     Mas[i]=Mas[i+1];
     Mas[i]=m;
а нужно
C++
1
2
3
int m=Mas[i];
     Mas[i]=Mas[i+1];
     Mas[i+1]=m;
Во-вторых, в этих циклах:
C++
1
 for (int i=1;i<N;i+=2)
и здесь
C++
1
for (int i=2;i<N;i+=2)
никогда не происходит обращение к первому элементу массива, т.е к Mas[0]
Ну и с циклом for внешним не совсем понятно.(do while здесь логичнее)
В общем, вот рабочий код:
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
int N;
cin>>N;
int *Mas = new int [N];
 
    for (int i = 0; i < N; i++)
        Mas[i] = rand() % 10;
 
    for (int p = 0; p < N; p++)
    {
        cout <<p+1<<". " << Mas[p] << endl;
    }
//Ñîðò
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
int res;
do
 {
     res=0;
     for (int i=0;i<N-1;i+=2)
     {
       if(Mas[i]>Mas[i+1]) 
       {
         int m=Mas[i];
         Mas[i]=Mas[i+1];
         Mas[i+1]=m;
         res=1;
       }
     } 
     for (int i=1;i<N-1;i+=2)
     {
       if(Mas[i]>Mas[i+1]) 
       {
         int m=Mas[i];
         Mas[i]=Mas[i+1];
        Mas[i+1]=m;
         res=1;
      }
 } 
}while(res==1);
////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////
    for (int p = 0; p < N; p++)
    {
        cout <<p+1<<". " << Mas[p] << endl;
    }
Если что будет непонятно, спрашивайте.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru