Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] помогите с типом int

Ответить
Настройки темы
C/C++ - [решено] помогите с типом int

Старожил


Сообщения: 227
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: Cherterok
Дата: 23-01-2011
Вобщем опять я)) препод как всегда смолол чуш..хотя может и не чуш) мне не понять)) вот задание
Дано трехзначное число. Вывести число, полученное при переста-
новке цифр сотен и десятков исходного числа (например, 123 перейдет
в 213).
препод сказал использовать оператор sizeof . собственно я не понял для чего. примера своей програмы нету т.к. я вобще не понял как перебрасывать числа в с++.
пробЫвал через сдвиг . толи я не понял как оно работает толи вобще не то делал

Отправлено: 14:16, 23-01-2011

 
pva pva вне форума

Аватара для pva

Ветеран


Сообщения: 1180
Благодарности: 279

Профиль | Отправить PM | Цитировать


Cherterok,
препод смолол чушь, в существительных женского рода шипящие надо говорить и писать мягко (глаза режет)
я тоже не понимаю, зачем нужен sizeof и сдвиг. Если решать задачку на бумаге, то всё обходится без них. Попробуй для начала на бумаге. Распиши подробно как делал (возможны 2 варианта, один хитрый, другой - тот, который хочет препод)

немного теории:
сдвиг смещает биты в двоичном представлении. Операция выполняется очень быстро, поэтому пользуется популярностью среди программистов. Сдвиг на один влево - это умножение на 2. Сдвиг на один вправо - это деление на 2. В данном случае умножать и делить на 2 не имеет смысла.
В итоге:
Цитата Cherterok:
пробовал через сдвиг . то_ли я не понял как оно работает, то_ли вообще не то делал »
верно и то, и другое
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:36, 23-01-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Hector

Misanthrope


Сообщения: 474
Благодарности: 38

Профиль | Отправить PM | Цитировать


Цитата pva:
возможны 2 варианта, один хитрый, другой - тот, который хочет препод »
хитрый это который со строками?

-------
Information must be free!
Нет границ, есть только препятствия


Отправлено: 16:50, 23-01-2011 | #3


Старожил


Сообщения: 227
Благодарности: 6

Профиль | Отправить PM | Цитировать


не ну на бумаге же просто перевернул число и все. а тут как?? теперь я понял что такое сдвиг) ато белеберда получалась типо 2<<111 получалось 444. я вобще не понимал как

Отправлено: 18:21, 23-01-2011 | #4


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Есть еще такая вещь - остаток от деления.
Есть различия в цифрах по позициям. Т.е. позиционная система счисления.
Соответственно вопрос - чем цифра одного разряда отличается от цифры другого разряда? Как отличить разряд сотен, от разряда единиц?
А на бумаге надо нарисовать концептуальную модель задачи. (я таки нашел это вумное слово )
Когда ты меняешь цифры местами ты должен каждую из них охарактеризовать и расписать порядок действий. Чтобы любой человек повторив эти действия пришел к искомому значению.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 19:33, 23-01-2011 | #5


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


1. Можно операцией деления на остаток вычислить количество чисел в числе(или привести преобразование целого в строку и strlen вычислить длину строки) эта длина будет равна количеству разрядов
2. Создаём динамический массив равный количеству разрядов
3. Используя операцию деления на остаток и деления, отрываем разряды и помещаем их в массив
4. Выводим элементы массива на экран, начиная с последнего.

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 23:19, 23-01-2011 | #6


Старожил


Сообщения: 227
Благодарности: 6

Профиль | Отправить PM | Цитировать


оО омг) кароче скажу преподу шо тут мего супер масивы и без 5 литров водки не разобраца.

Отправлено: 23:22, 23-01-2011 | #7


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Cherterok, решено. Сообразишь сам?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 23:29, 23-01-2011 | #8


Новый участник


Сообщения: 23
Благодарности: 2

Профиль | Отправить PM | Цитировать


Самый простой вариант, по-моему, воспользоваться функцией преобразования в строку . Затем взять символ, скопировать в переменную a, скопировать второй символ в первый, а на его место a. Так же можно добавить strlen(str)==3. Затем можно преобразовать строку в число, а можно сразу вывести на экран. Только как тут приписать sizeof? По-любому для int будет 4 байта.

Отправлено: 00:20, 24-01-2011 | #9


Аватара для lxa85

Необычный


Contributor


Сообщения: 4463
Благодарности: 994

Профиль | Сайт | Отправить PM | Цитировать


Печальный чайник, проще ли? Вводить дополнительные переменные символьного типа. Вызывать подпрограммы обработки. Для работы в пределах 1000 слишком много лишних действий. Это уже современные пользователи, ресурсами, пардон, зажрались.

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 00:37, 24-01-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] помогите с типом int

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход