Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> написание функции, Помогите 
:(
    Опции темы
WinDWS
Дата 18.11.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 15.10.2008
Где: Москва

Репутация: нет
Всего: нет



Составить функцию, которая, получив целое число, преобразует его, поменяв в нем первую и последнюю цифру.
как это сделать подскажите пожайлуста! заранее спасибо!
PM MAIL ICQ Skype   Вверх
sQu1rr
Дата 18.11.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



если зрение не обманывает - целое (int и ему подобные)
тогда
Код

int x = 125;
char integer[4] = itoa(x);
integer[3] = '\0';
char temp;
temp = integer[2];
integer[2] = integer[0];
integer[0] = temp;
x = atoi(integer);


Только единственное придется все сделать подругому, потому что в числе не обязательно будет 3 цифры, все это придется автоматизировать... советую string контейнер использовать
PM MAIL Skype GTalk   Вверх
mes
Дата 18.11.2008, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(sQu1rr @  18.11.2008,  23:06 Найти цитируемый пост)
советую string контейнер использовать 

а можно и без перевода числа в строку :
Код

int my_func (int chislo)
{
   unsigned int size = 1;  // даже если chislo == 0 все равно длина в 1 цифру
   unsigned int base = 1;  // основа числа
   for (unsigned int i=abs(chislo); i>9; i/=10) ++size, base*=10; // считаем длину числа

   int first = chislo/base;  // первая цифра
   int last  = chislo-(chislo/10)*10; // последняя цифра

   return first + last*base  // ставим цифры на новые места
          + (chislo-first*base-last);// и прибавляем серединку (остаток числа).

}



Это сообщение отредактировал(а) mes - 19.11.2008, 12:09


--------------------
PM MAIL WWW   Вверх
megabist
Дата 19.11.2008, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Mart Slaaf
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 3.4.2006
Где: Мск

Репутация: нет
Всего: 31



А переполнения, при таких действиях, никто не боится?
Со строкой этого можно не бояться, если не приводить обратно в инт.
{Если я чего попутал, извините, в последнее время с С оч косвенно общаюсь.}


--------------------
Don't panic!

Жди, и Фатум тебя приведёт...
PM MAIL ICQ Skype GTalk   Вверх
sQu1rr
Дата 19.11.2008, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 3
Всего: 13



Цитата(megabist @ 19.11.2008,  07:59)
А переполнения, при таких действиях, никто не боится?
Со строкой этого можно не бояться, если не приводить обратно в инт.
{Если я чего попутал, извините, в последнее время с С оч косвенно общаюсь.}

Если по схеме mes делать, то можно не бояться, так как он работает уже с интом, а значит его размерне увеличится и переполнение не случится...
Если по моей схеме переводит в инт число больше диапазона, то через atoi() оно по идее обрезается. Хотя  я точно не знаю (может и округляется)
Вообщем проблем быть не должно
PM MAIL Skype GTalk   Вверх
megabist
Дата 19.11.2008, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Mart Slaaf
**


Профиль
Группа: Участник
Сообщений: 455
Регистрация: 3.4.2006
Где: Мск

Репутация: нет
Всего: 31



sQu1rr, Да и в его схеме помоему тоже можно бояться,. там если я не ошибаюсь, в максимуме- первая цифирька 4, и не больше. так вот более 50% шанс, что последняя (ну, 50, это типа если число уже по длине вписалось аккурат) будет больше =)
http://www.citforum.ru/programming/cpp_march/cpp_017.shtml

Я бы ради верности, либо выводил строкой, либо в массив их пихал...
А либо, как вариант, сразу же, скажем пихнуть в long, и там уже работать =)


--------------------
Don't panic!

Жди, и Фатум тебя приведёт...
PM MAIL ICQ Skype GTalk   Вверх
WinDWS
Дата 19.11.2008, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 15.10.2008
Где: Москва

Репутация: нет
Всего: нет



Спасибо Люди добрые!! я сделал через цикл! все работает! еще раз огромное спасибо!!
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.