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

Помогите с алгоритмом - C++

Восстановить пароль Регистрация
 
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
04.01.2012, 22:19     Помогите с алгоритмом #1
Нужно написать программу сравнения 3 чисел. Без использования массивов, функций, управляющего else. то есть только используя if
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
04.01.2012, 22:29     Помогите с алгоритмом #2
Цитата Сообщение от Andruxa-1 Посмотреть сообщение
Нужно написать программу сравнения 3 чисел. Без использования массивов, функций, управляющего else. то есть только используя if
C++
1
2
3
4
if(a > b)
    std::cout << a << " > " << b << std::endl;
if(b > a)
    std::cout << b << " > " << a << std::endl;
Аналогично с двумя переменными.
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
04.01.2012, 23:48  [ТС]     Помогите с алгоритмом #3
может я ошибаюсь, но это 2 переменные...
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
05.01.2012, 00:00     Помогите с алгоритмом #4
Цитата Сообщение от Andruxa-1 Посмотреть сообщение
Нужно написать программу сравнения 3 чисел
это как ?
два числа понятно больше меньше равно
а три
типа число 1 меньше числа 2 и меньше числа 3 а число 2 больше числа 1 и меньше числа 3 ???

Цитата Сообщение от Andruxa-1 Посмотреть сообщение
Без использования массивов, функций, управляющего else.
гото можно?

Добавлено через 3 минуты
пербор всех вариантов
C++
1
2
3
4
5
if(a > b && b>c)
 
if(a>b && b<c)
.................
if(a==b && b==c)
так пойдет???
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
05.01.2012, 00:10  [ТС]     Помогите с алгоритмом #5
Да все правильно, не дописал условие. т.е есть 3 числа например: 6 10 4 результат 4 6 10
Цитата Сообщение от ValeryS Посмотреть сообщение
это как ?
два числа понятно больше меньше равно
а три
типа число 1 меньше числа 2 и меньше числа 3 а число 2 больше числа 1 и меньше числа 3 ???


гото можно?
Нет, без него, только чистые ифы ))

Цитата Сообщение от ValeryS Посмотреть сообщение
Добавлено через 3 минуты
пербор всех вариантов
C++
1
2
3
4
5
if(a > b && b>c)
 
if(a>b && b<c)
.................
if(a==b && b==c)
так пойдет???
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
05.01.2012, 00:19     Помогите с алгоритмом #6
Цитата Сообщение от Andruxa-1 Посмотреть сообщение
не дописал условие. т.е есть 3 числа например: 6 10 4 результат 4 6 10
это называется отсортировать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(a>b)
 {
  \\ это маленькая шутка обмен двух переменных без третьей
  a^=b;
  b^=a;
  a^=b;
}
if(b>c)
 {
  b^=c;
  c^=b;
  b^=c;
}
if(a>b)
 {
   a^=b;
  b^=a;
  a^=b;
}
Метод "пузырька"
только цикл развернули
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
05.01.2012, 03:43  [ТС]     Помогите с алгоритмом #7
а можно подробней объяснить... это поразрядное XOR но как оно здесь работает не пойму
Цитата Сообщение от ValeryS Посмотреть сообщение
это называется отсортировать
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(a>b)
 {
  \\ это маленькая шутка обмен двух переменных без третьей
  a^=b;
  b^=a;
  a^=b;
}
if(b>c)
 {
  b^=c;
  c^=b;
  b^=c;
}
if(a>b)
 {
   a^=b;
  b^=a;
  a^=b;
}
Метод "пузырька"
только цикл развернули
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
05.01.2012, 07:23     Помогите с алгоритмом #8
Цитата Сообщение от Andruxa-1 Посмотреть сообщение
это поразрядное XOR но как оно здесь работает не пойму
обмен двух переменных
например
а=5(101) и b=3(11)
1 a^=b; a=6 (110) b=3(11)
2 b^=a; a=6(110) b=5(101)
3 a^=b; a=3 (11) b=5(101)

видишь поменялись местами
можно через плюс минус
поищи на форуме вопрос обсуждался
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
05.01.2012, 07:54     Помогите с алгоритмом #9
Цитата Сообщение от ValeryS Посмотреть сообщение
можно через плюс минус
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
#include <iostream>
using std::cout;
using std::cin;
 
int main() {
 
    int a = 2;
    int b = 1;
    int c = 5;
 
    if (a > b) {
        b = b + a;
        a = b - a;
        b = b - a;
    }
    if (b > c) {
        c = c + b;
        b = c - b;
        c = c - b;
    }
    if (a > b) {
        b = b + a;
        a = b - a;
        b = b - a;
    }
    cout << a << " " << b << " " << c;
 
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2012, 22:04     Помогите с алгоритмом
Еще ссылки по теме:

помогите с алгоритмом! C++
Помогите с алгоритмом C++
Помощь с алгоритмом C++

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

Или воспользуйтесь поиском по форуму:
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
09.01.2012, 22:04  [ТС]     Помогите с алгоритмом #10
Спасибо, ребята, помогли разобраться. очень интересные решения!
Yandex
Объявления
09.01.2012, 22:04     Помогите с алгоритмом
Ответ Создать тему
Опции темы

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