Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
#include <iostream>
int main()
{
int num;
std::cin >> std::dec >> num;
std::cout << std::hex << num << std::endl;
return 0;
}
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
// для unsigned.#define DEC_SIZEOF_INT 10
const char hexArr[16] = "0123456789ABCDEF";
char* Dec2Hex(unsigned num)
{
char* str = (char*) malloc(DEC_SIZEOF_INT);
int i;
for (i = DEC_SIZEOF_INT - 1; i <= 0; --i)
{
str[i] = hexArr[num & 0xF];
num >>= 4;
}
return str;
}
int main()
{
unsigned num;
scanf("%d",num);
printf(Dec2Hex(num));
return 1;
}
Здравствуйте, folk, Вы писали:
G>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, folk, Вы писали:
G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>>
Здравствуйте, Шахтер, Вы писали: AD>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали: AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
Разве больше? По-моему, это какой-то странный преподаватель!
Здравствуйте, Шахтер, Вы писали:
AD>>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента Ш>Разве больше? По-моему, это какой-то странный преподаватель!
Преподаватели разные бывают. Иногда и такие попадаются.
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали:
AD>>>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента Ш>>Разве больше? По-моему, это какой-то странный преподаватель!
AD>Преподаватели разные бывают. Иногда и такие попадаются.
В таком случае данную задачу надо как минимум реализовать с использование DirectX, и не забыв про такие модные вещи как SOAP+XML, COM/DCOM, CORBA. Вот это вот тогда точно круто получится.
А>// для unsigned.
А>//#define DEC_SIZEOF_INT 10
/* заменяем дефайны на константы
я уж не говорю о том, что такой константы нам вообще не надо
*/const unsigned int dec_sizeof_int 10;
А>//const char hexArr[16] = "0123456789ABCDEF";
/*Зачем выполнять копирование? И тем более прописывать размер массива - пусть компилятор работает за нас!*/const char* const = "0123456789ABCDEF";
А>char* Dec2Hex(unsigned num)
А>{
А> char* str = (char*) malloc(DEC_SIZEOF_INT);
/*Не фонтан. Память удалять не там, где выделяли - дурной тон. Не говорю уже о том,
что результат выделения надо проверять!*/
А> int i;
А> for (i = DEC_SIZEOF_INT - 1; i <= 0; --i)
А> {
А> str[i] = hexArr[num & 0xF];
А> //num >>= 4;
/*не на 4, а на sizeof(int)*/
num >>= sizeof(int);
А> }
/*строка не завершена 0. Функции работы со строками работать с ней корректно не будут.*/
А> return str;
А>}
А>int main()
А>{
А>unsigned num;
А>//scanf("%d",num);
/*Просто ошибка. Нужно адрес передавать.*/
scanf("%d",&num);
А>//printf(Dec2Hex(num));
/*очень дурно. Нельзя печатать строку как есть. А если там управляющие символы?*/
printf("%s", Dec2Hex(num));
/*Так и есть. Память, выделенная под строку, не освобождается.*/
А>return 1;
А>}
Итого - 2 с минусом. Увы.
А>
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
А как хранится десятичное число? В двоичном виде? Или в виде строки?
АШ>Что-то вас занесло. Причем здесь sizeof(int)? Деление на 16 и есть сдвиг вправо на 4. Конечно. Вошел в раж, это называется. Переклинило, я просто как раз на работе смотрел на размер int и с кодом разбирался, в котором используется фиксированное значение.
Здравствуйте, ArtDenis, Вы писали:
G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>>
AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Я б поставил трояк
Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Grim, Вы писали:
G> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт!
Здравствуйте, Flamer, Вы писали:
F>Под С++ Билдером это ну буквально одна строка F>
F>String str = IntToHex(num,8);
F>
На голом Це тоже в одну строку
// эти строки - за пределами собственно решенияchar strdec[] = "3735928559";
char strhex[11]; // "0xDEADBEEF\0"
// а вот и оно
sprintf(strhex, "0x%08X", atoi(strdec));
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, folk, Вы писали:
G>>> Помгогите бедному студенту! Завтра по C++ зачёт и надо написат программу котороая будет делать переводит десятичное число в шеснадцатеричное. А я в си плохо рублю, и задание ну никак не получается сделать. Сжальтесь, напишите пожалуйста! Завтра зачёт! F>>
AD>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит.
Вот-вот... вот что можно сказать на такой случай:
неделю назад сдаю курсовой... задача стоит так: "написать клиента к орклу, чтобы данные из заданной базы выбирал"
Всем выдали делфёвый компанент из серии TConnectToDataBaseVeryEasyAndDontThinkAtAll и сказали — вот так можно... Ну, народ написал все это на делфяке за 30 минут и сдал.
Приношу я... написал клиента... интерфейс командной строки, коннектится, использую ODBC API и дальше можно туда любой sql писать... супер, мне понравилось.. И что вы думаете... отправили меня как миленького назад, не объяснив даже почему... Вот и стремись после этого к знаниям..
Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, Шахтер, Вы писали: AD>>>Если преподаватель ожидает увидеть программу размером в десяток листов распечатки, то за такую он точно двояк поставит. Ш>>Странно, мне всегда казалось, что чем короче программа, тем лучше. Меньше слов (ключевых), больше дела!
AD>Это с точки зрения программиста. А сточки зрения преподавателя — чем больше программа, тем больше знаний у студента
100% даю, что зарубят stl ... как студент говорю... у меня такое сто раз было... вот еще помню потянуло меня на GDI+ в прошлом семестре, когда все обычном api писали... эх... зарубили... что это за фигня сказали..
Здравствуйте, LaptevVV, Вы писали: LVV>Я б поставил трояк LVV>Это решение проблемы наипростейшим способом. Значит — соображает хоть что-то!
стимулируете к неиспользованию включенных в современные средства стандартных возможностей?? %)))
я бы даже такое задание не дал... как впрочем не дал бы и заданий аля "написать бабль сорт" или что ужасней "написать qsort" — нафих??? надо стимулировать к использованию std::sort, а не заставлять людей понапрасну мучацца. если бы у меня работник написал сортировкую массива с использованием своей функции-сортировки бабль сортом, я бы его уволил нахрен тут же...
задания надо давать соответствующие... ну где щас понадобится опыт в написании dec2hex? времена ASM канули в прошлое.
я бы за подобное решение поставил 5. тока это должно было бы быть не с std::cin/std::cout работать а со строками string