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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 288
#1

Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c - C++

13.02.2013, 22:46. Просмотров 2287. Ответов 20
Метки нет (Все метки)

Здравствуйте.
Помогите, пожалуйста, в написании алгоритма на C++.
>> Введенные значения переменных a, b, c поменять местами так,
чтобы оказалось a>=b>=c.
Спасибо заранее добрым людям! +(с меня плюсики к вашей репутации)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2013, 22:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c (C++):

Значения переменных а, Ь и с поменять местами так, чтобы оказалось а >= Ь >= с. - C++
Значения переменных а, Ь и с поменять местами так, чтобы оказалось а >= Ь >= с. помогите пожалуйста

Значения переменных поменять местами так, чтобы они оказались упорядоченными по возрастанию - C++
1) Найти длину окружности и площадь круга заданного радиуса R. Для значения пи использовать 3.14. 2) Дано три действительных числа X, Y,...

Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений, а в B-большее - C++
Даны две переменные вещественного типа: A, B. Перераспределить значения данных переменных так, чтобы в A оказалось меньшее из значений,...

Значения переменных X, Y, Z поменять местами так - C++
Значения переменных X, Y, Z поменять местами так, чтобы они оказались упорядоченными по убыванию. Подскажите пожалуйста просто я только...

Значение переменных поменять местами так, чтобы они оказались упорядоченными по возрастанию - C++
Спасибо огромное Инфинити!!! за прошлый ответ . Робот может перемещаться в четырех направлениях("С"-север, "З"-запад, "Ю"-юг,...

Значение переменных поменять местами так, чтобы они оказались упорядоченными по возрастанию - C++
Здравствуйте дорогие форумчане! помогите пожалуйта с решением задачки на С++ . Значение переменных X, Y, Z, поменять местами так, что бы...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
anoise
2 / 2 / 0
Регистрация: 11.02.2013
Сообщений: 8
14.02.2013, 23:11 #16
Venom33, int &a, int &b - это ссылки. Почитайте какую нибудь книжку чтоли по с++... Вопросов много сразу отпадет
Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 288
14.02.2013, 23:50  [ТС] #17
Цитата Сообщение от anoise Посмотреть сообщение
Вопросов много сразу отпадет
меня только этот вопрос интересует так поему же в разных циклах написано? почему не в одном?
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
15.02.2013, 07:06 #18
Цитата Сообщение от Venom33 Посмотреть сообщение
меня только этот вопрос интересует так поему же в разных циклах написано? почему не в одном?
Не коректный вопрос. func это это внешняя функция. Внешние функции используют для:
1. Уменьшение количества кода
2. Уменьшение расхода динамической памяти
3. Улучшение читабельности кода
4. Особый случай когда функция рекурсивна и должна вызывать саму себя

в данном случае функция выполняет 1 и 3 момент.
т.е. смысл мне 3 раза менять местами переменные, если я могу 1 раз написать функцию и во входные данные кидать нужные мне значения.
2. случай тут не особо виден. Когда из мэйна идет переход в другую функцию, все элементы которые там создаются и никаким явным или неявным способом не передаются из неё удаляются после завершения.
Для примера функция, на вход подается строка или указатель/ссылка на строку, не особо важно. строку нужно разбить на слова и вернуть обратно список слов. Мы заранее не знаем, сколько у нас слов строке, какого размера строка и т.д. Мы можем лишь предполагать. В функции мы можем создать чаровский двумерный массив (пусть будет buf) 1000 на 1000 элементов (это значит в него можно поместить 1000 отдельных подстрок длиною в 999 символов + нольбайт). Далее разбиваем слова вставляем каждое слово в отдельную ячейку массива buf. После проделанной операции мы уже точно знаем сколько слов у нас хранится во временном массиве. создаем динамический 2мерный массив размерностью m - количество строк в buf. И далее в цикле выделяем памяти ромно столько , какая длина слова в подстроке buf[i]. В итоге у нас получается на масив 1000х1000, на например 324хN где N - длина подстроки в каждом из подстрок. Чтобы было понятней вот так покажу.
C++
1
2
3
4
5
6
7
8
9
//вот так будет выглядеть статический массив
1 1 1 1 1 0 0 0
1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 0
1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0
1 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
C++
1
2
3
4
5
6
7
8
9
//А так динамический
1 1 1 1 1
1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1
1 1 1 1
1
1 1 1 1 1
для чего это?
а для того. тип char "весит" 1 байт => массив 1000х1000 будет весить 1000000 байт = 976 килобайт. А если быть точно уверенным что текст у нас будет максимально большой то сделать массив 10000х1000 такой уже будет весить 9.5 мегобайт. Только вот смысл ворочать им в теле программы если он нужно от него от силы 20-30% и нужен он нам лишь для того чтобы разбить строку на подстроки. В итоге после действия программы мы получим массив который будет мало "весить". А та здоровая дура самоаннигилируется после выполнения функции. Причем время выполнения её будет пару сотен миллисекунд. Вот в общем то зачем пишутся функции. Про рекурсию смысла нет особого рассказывать, т.к. чувствую ваш уровень не достаточен чтобы с моих слов её понять =)
Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 288
15.02.2013, 07:27  [ТС] #19
вот ээто замечательно,благодарю. приду- спасибыы везде нажму
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
15.02.2013, 07:28 #20
От ТС, как я понял, хотели получить что то вроде такого:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <algorithm>
#include <iostream>
 
 
int main() {
   int a, b, c;
   
   std::cin >> a >> b >> c;
   
   if ( b > a )
      std::swap( a, b );
   
   if ( c > a )
      std::swap( a, c );
   
   if ( c > b )
      std::swap( b, c );
   
   std::cout << a << ' ' << b << ' ' << c << std::endl;
   
   return 0;
}
Venom33
19 / 19 / 0
Регистрация: 26.01.2013
Сообщений: 288
15.02.2013, 12:02  [ТС] #21
Цитата Сообщение от Toshkarik Посмотреть сообщение
как я понял, хотели получить что то вроде такого:
Нет, но всё равно спасибо всем! Я разобрался с вашей помощью (все помогли)
МОЖНО ТЕМУ ЗАКРЫВАТЬ

Добавлено через 5 минут
MrGrig, как и обещал, поблагодарил,пока кнопка не пропала
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2013, 12:02
Привет! Вот еще темы с ответами:

Условный оператор: поменять значения переменных так, чтобы выполнилось условие - C++
Даны вещественные x1, x2, x3, x4 . Поменять значения переменных так, чтобы \chi 1 \geq \chi 2; \chi 3 \geq \chi 4.

Поменять местами введенные значения - C++
Помогите, пожалуйста, простенько решить задачку. Даны четыре числа А, В, С и D. Поменять их значения местами таким образом, что-бы A &gt; B...

Поменять местами значения целых переменных х и у не используя дополнительных переменных - C++
Знаю, что это очень простая задача, но никак не могу сделать, пожалуйста помогите!!! Поменять местами значения целых переменных х и у не...

Поменять местами значения вещественных переменных - C++
Поменяйте местами значения вещественных переменных x и y


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
15.02.2013, 12:02
Ответ Создать тему
Опции темы

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