Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
silent_assassin писал(а):
в общем надо написать на С++ программку
дана строка S. создать новую строку содержащую в начале буквы, а после а затем остальные символы из s
То есть надо чтобы буквы которые есть в строке были в начале строки а цифры были в конце , как примерно это делается я понимаю но реализовать на С++ . Помогите если кто знает
Да, вы нас озадачили тут всех
Код:
#include <iostream> #include <string> using namespace std;
Код для хотя бы какого челленджа написал тут, так что проверяйте. То что isalpha() тут заюзана это не есть гуд, но вы разберётесь как вам лучше. Я сделал вывод новой строки на экран, если вам нужна именно новая преобразованная строка, пару строк измените. И если вам нужно чтобы строка шла вместе с пробелом, заюзаете gets_s()
Member
Статус: Не в сети Регистрация: 27.12.2011 Откуда: Краснодар
Industrialice Я только недавно начал позновать с++ так что я пока многого не знаю , щас буду разбираться что да как . СПАСИБО СПАСИБО ? вроде работает как сделать чтоб окно с программой сразу не закрывалось ? vs2008
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
silent_assassin писал(а):
Industrialice Спасибо старый тоже работает
Используйте новый, в старом я что-то забылся и не очень хорошее условие для цикла написал. Конечно же лучше писать for( unsigned index = 0; index < o_str.size(); ++index ) а не for( int index = 0; o_str[index]; ++index ) Да и незачем вам пока со string связываться
Последний раз редактировалось Industrialice 12.03.2012 21:57, всего редактировалось 2 раз(а).
Member
Статус: Не в сети Регистрация: 27.12.2011 Откуда: Краснодар
Industrialice писал(а):
Используйте новый, в старом я что-то забылся и неправильное условие для цикла написал. Конечно же должно было быть for( unsigned index = 0; index < o_str.size(); ++index ) а не for( int index = 0; o_str[index]; ++index )
бывает , я ж еще в нем чайник , как говорится это вам не видуху разгонять .
Member
Статус: Не в сети Регистрация: 20.03.2009 Откуда: Санкт-Петербург
Russian А конкретнее, что требуется генерировать? Будет задан диапазон чисел, где каждому отрезку соответствует своя вероятность? В принципе начало такое - генерируешь случайное число типа int. После делишь его на MAX_INT. Этим получил какое-либо значение от 0 до 1. Если нужно выдавать например 10 с вероятностью 30%, 15 с 50%, 16 с 20%, то тогда, если полученное значение от 0,5 до 1, то выдаешь 15. От 0.2 до 0.5 - выдаешь 10. От 0 до 0.2 - выдаешь 16.
_________________ Задачи бывают простыми и очень простыми...
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
Danmerpro писал(а):
Russian А конкретнее, что требуется генерировать? Будет задан диапазон чисел, где каждому отрезку соответствует своя вероятность? В принципе начало такое - генерируешь случайное число типа int. После делишь его на MAX_INT. Этим получил какое-либо значение от 0 до 1. Если нужно выдавать например 10 с вероятностью 30%, 15 с 50%, 16 с 20%, то тогда, если полученное значение от 0,5 до 1, то выдаешь 15. От 0.2 до 0.5 - выдаешь 10. От 0 до 0.2 - выдаешь 16.
А я не понял зачем нам делить на MAX_INT( кстати INT_MAX ), ведь тот же rand() выдаёт числа от 0 до RAND_MAX. И исходя из вопроса я вообще не понял - с заданной вероятностью чего именно?
silent_assassin писал(а):
как в VS 2008 включить отображение ошибок когда пишешь программу на С++ ? во вкладке window смотрел но что то не нашел
Ээээ, вы про IntelliSence? Проверка синтаксиса во время написания кода и ещё некоторые функции
Member
Статус: Не в сети Регистрация: 08.05.2006 Откуда: СПБ
есть диапазон чисел, точнее всего два 0 и 1 сейчас вроде как функцией rand() числа выпадают равномерно,но мне надо чтоб например число выпадало с определенной вероятностью, которую можно задать. Например число 0 выпадает с вероятностью 0.8, число 1 с вероятностью 0.2 соответственно
_________________ Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
Russian писал(а):
есть диапазон чисел, точнее всего два 0 и 1 сейчас вроде как функцией rand() числа выпадают равномерно,но мне надо чтоб например число выпадало с определенной вероятностью, которую можно задать. Например число 0 выпадает с вероятностью 0.8, число 1 с вероятностью 0.2 соответственно
Ну, первый гамно-код что при пришёл мне в голову в такое время примерно так выглядит
Код:
int CrapRand( float zeroP, float oneP ) { int zeroPercent = zeroP * 100.f + 0.1f; // + 0.1f для защиты от погрешности вычислений вещественных чисел int onePercent = oneP * 100.f + 0.1f;
int random = rand() % 100; if( random < zeroPercent ) return 0; return 1; }
Функция, кидаете в неё свои CrapRound( 0.8f, 0.2f ) и забираете резалт. Будет голова свежая подумаю получше. Но вроде итак всё ок работает
Последний раз редактировалось Industrialice 21.03.2012 1:21, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 12.09.2010 Откуда: Калининград
Russian, кстати если у вас так и будет 2 числа, то во втором % смысла нету - понятно что его можно получить 100% - % первого числа. Да и в любом случае у меня он не юзается
Member
Статус: Не в сети Регистрация: 20.03.2009 Откуда: Санкт-Петербург
Industrialice писал(а):
зачем нам делить на MAX_INT( кстати INT_MAX ),
Затем, чтобы не делать так
Industrialice писал(а):
int random = rand() % 100;
Этот код вернет целое число в диапазоне, ограниченным модулем. То есть 53,567892 получить не удастя. То, что предложил я, позволяет задать вероятность с максимальной точностью по количеству знаков.
_________________ Задачи бывают простыми и очень простыми...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения