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

Простейшая сортировка. В чем причина? - C++

Восстановить пароль Регистрация
 
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
15.09.2012, 15:16     Простейшая сортировка. В чем причина? #1
нужно отсортировать массив размерности q (вводится с клавиатуры) от большего к меньшему. проблема в том, что у меня почему-то происходит только 1 итерация внешнего цикла.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main() {
    int q, w;
    int e, a;
    int r=0;
    int t=0;
    cin >> q; //получение размерности массива
    int i[q];
    for (w=1; w<=q; w++) cin >> i[w]; // заполнение
    for (w=1; w<=q-1; w++)
    for (e=2; e<=q; e++)
    if (i[w]<i[e]) {
        a=i[w];
        i[w]=i[e];
        i[e]=a;
    }
//..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2012, 15:16     Простейшая сортировка. В чем причина?
Посмотрите здесь:

Незнаю в чем причина C++
В чем причина ошибки? C++
В чем причина? C++
C++ Различия компиляторов. В чем причина?
подскажите в чем причина.... C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
15.09.2012, 16:10     Простейшая сортировка. В чем причина? #2
bezoomec,
C++
1
2
3
4
5
6
7
8
9
 for (w=0; w<q; w++) 
     cin >> i[w]; // заполнение
   cout<<endl; 
    for (w=0; w<q; w++)
     for (e=0; e<q; e++)
      if (i[w]<i[e]) 
       {
        ...
       }
valeriikozlov
15.09.2012, 17:22
  #3

Не по теме:

bezoomec, Паскаль до этого изучали?

bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
15.09.2012, 17:34  [ТС]     Простейшая сортировка. В чем причина? #4
Цитата Сообщение от BumerangSP Посмотреть сообщение
bezoomec,
C++
1
2
3
4
5
6
7
8
9
 for (w=0; w<q; w++) 
     cin >> i[w]; // заполнение
   cout<<endl; 
    for (w=0; w<q; w++)
     for (e=0; e<q; e++)
      if (i[w]<i[e]) 
       {
        ...
       }
но так же и внутренний и внешний цикл будут сравнивать 1 элемент массива сам с собой

Цитата Сообщение от valeriikozlov Посмотреть сообщение

Не по теме:

bezoomec, Паскаль до этого изучали?

ну да
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.09.2012, 17:39     Простейшая сортировка. В чем причина? #5
Цитата Сообщение от bezoomec Посмотреть сообщение
ну да
В с/с++ индексация элементов массива начинается с 0 до N-1 (в отличии от Паскаля):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main() {
    int q, w;
    int e, a;
    int r=0;
    int t=0;
    int i[1000];
    cin >> q; //получение размерности массива    
    for (w=0; w<q; w++) cin >> i[w]; // заполнение
    for (w=0; w<q-1; w++)
    for (e=0; e<q-1; e++)
    if (i[e]<i[e+1]) {
        a=i[e];
        i[e]=i[e+1];
        i[e+1]=a;
    }
    for (w=0; w<q; w++) cout << i[w]<<" "; // вывод
    return 0;
}
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
15.09.2012, 17:42  [ТС]     Простейшая сортировка. В чем причина? #6
Цитата Сообщение от valeriikozlov Посмотреть сообщение
В с/с++ индексация элементов массива начинается с 0 до N-1 (в отличии от Паскаля):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
 
using namespace std;
 
int main() {
    int q, w;
    int e, a;
    int r=0;
    int t=0;
    int i[1000];
    cin >> q; //получение размерности массива    
    for (w=0; w<q; w++) cin >> i[w]; // заполнение
    for (w=0; w<q-1; w++)
    for (e=0; e<q-1; e++)
    if (i[e]<i[e+1]) {
        a=i[e];
        i[e]=i[e+1];
        i[e+1]=a;
    }
    for (w=0; w<q; w++) cout << i[w]<<" "; // вывод
    return 0;
}
да блин точно там же эта штука '\0'. спасибо, щас буду пробовать
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
15.09.2012, 18:13     Простейшая сортировка. В чем причина? #7
Цитата Сообщение от bezoomec Посмотреть сообщение
но так же и внутренний и внешний цикл будут сравнивать 1 элемент массива сам с собой
Надеюсь, вы сначала проверили код, а потом задали этот вопрос
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 13:34     Простейшая сортировка. В чем причина?
Еще ссылки по теме:

C++ В чем причина
C++ В чем причина
C++ Люди не знаю в чем причина гляньте кто то

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

Или воспользуйтесь поиском по форуму:
bezoomec
2 / 2 / 0
Регистрация: 15.09.2012
Сообщений: 47
16.09.2012, 13:34  [ТС]     Простейшая сортировка. В чем причина? #8
Да у меня все получилось. Спасибо вам! Тема закрыта.
Yandex
Объявления
16.09.2012, 13:34     Простейшая сортировка. В чем причина?
Ответ Создать тему
Опции темы

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