|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] помогите с типом int |
|
|
C/C++ - [решено] помогите с типом int
|
Старожил Сообщения: 227 |
Вобщем опять я)) препод как всегда смолол чуш..хотя может и не чуш) мне не понять)) вот задание
Дано трехзначное число. Вывести число, полученное при переста- новке цифр сотен и десятков исходного числа (например, 123 перейдет в 213). препод сказал использовать оператор sizeof . собственно я не понял для чего. примера своей програмы нету т.к. я вобще не понял как перебрасывать числа в с++. пробЫвал через сдвиг . толи я не понял как оно работает толи вобще не то делал |
|
Отправлено: 14:16, 23-01-2011 |
![]() Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Cherterok,
препод смолол чушь, в существительных женского рода шипящие надо говорить и писать мягко (глаза режет) я тоже не понимаю, зачем нужен sizeof и сдвиг. Если решать задачку на бумаге, то всё обходится без них. Попробуй для начала на бумаге. Распиши подробно как делал (возможны 2 варианта, один хитрый, другой - тот, который хочет препод) немного теории: сдвиг смещает биты в двоичном представлении. Операция выполняется очень быстро, поэтому пользуется популярностью среди программистов. Сдвиг на один влево - это умножение на 2. Сдвиг на один вправо - это деление на 2. В данном случае умножать и делить на 2 не имеет смысла. В итоге: Цитата Cherterok:
|
|
Отправлено: 15:36, 23-01-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Misanthrope Сообщения: 474
|
Профиль | Отправить PM | Цитировать Цитата pva:
|
|
------- Отправлено: 16:50, 23-01-2011 | #3 |
Старожил Сообщения: 227
|
Профиль | Отправить PM | Цитировать не ну на бумаге же просто перевернул число и все. а тут как?? теперь я понял что такое сдвиг
![]() ![]() |
Отправлено: 18:21, 23-01-2011 | #4 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Есть еще такая вещь - остаток от деления.
Есть различия в цифрах по позициям. Т.е. позиционная система счисления. Соответственно вопрос - чем цифра одного разряда отличается от цифры другого разряда? Как отличить разряд сотен, от разряда единиц? А на бумаге надо нарисовать концептуальную модель задачи. (я таки нашел это вумное слово ![]() Когда ты меняешь цифры местами ты должен каждую из них охарактеризовать и расписать порядок действий. Чтобы любой человек повторив эти действия пришел к искомому значению. |
|
------- Отправлено: 19:33, 23-01-2011 | #5 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать 1. Можно операцией деления на остаток вычислить количество чисел в числе(или привести преобразование целого в строку и strlen вычислить длину строки) эта длина будет равна количеству разрядов
2. Создаём динамический массив равный количеству разрядов 3. Используя операцию деления на остаток и деления, отрываем разряды и помещаем их в массив 4. Выводим элементы массива на экран, начиная с последнего. |
------- Отправлено: 23:19, 23-01-2011 | #6 |
Старожил Сообщения: 227
|
Профиль | Отправить PM | Цитировать оО омг) кароче скажу преподу шо тут мего супер масивы и без 5 литров водки не разобраца.
|
Отправлено: 23:22, 23-01-2011 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать Cherterok, решено. Сообразишь сам?
![]() |
------- Отправлено: 23:29, 23-01-2011 | #8 |
Новый участник Сообщения: 23
|
Профиль | Отправить PM | Цитировать Самый простой вариант, по-моему, воспользоваться функцией преобразования в строку . Затем взять символ, скопировать в переменную a, скопировать второй символ в первый, а на его место a. Так же можно добавить strlen(str)==3. Затем можно преобразовать строку в число, а можно сразу вывести на экран. Только как тут приписать sizeof? По-любому для int будет 4 байта.
|
Отправлено: 00:20, 24-01-2011 | #9 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Печальный чайник, проще ли? Вводить дополнительные переменные символьного типа. Вызывать подпрограммы обработки. Для работы в пределах 1000 слишком много лишних действий. Это уже современные пользователи, ресурсами, пардон, зажрались.
|
------- Отправлено: 00:37, 24-01-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - [решено] помогите с типом char | Cherterok | Программирование и базы данных | 6 | 14-01-2011 05:32 | |
C/C++ - [решено] невозможно преобразовать 'int (__cdecl *)(void)' в 'int' | котвася | Программирование и базы данных | 4 | 21-06-2010 18:14 | |
Разное - [решено] Проблема с типом шрифта в Adobe Reader под Windows 7 | serzhdj | Microsoft Windows 7 | 1 | 15-01-2010 09:43 | |
C/C++ - [решено] int в AnsiString | crashtuak | Программирование и базы данных | 7 | 30-03-2009 02:11 | |
Как перевсти char в int? | Sage | Программирование и базы данных | 4 | 27-03-2003 09:44 |
|