-
+23
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
volatile bool b;
class BoolKeeper
{
bool &fb;
public:
BoolKeeper(bool &b)
{
while (b);
b = true;
}
~BoolKeeper ()
{
b = false;
}
}
void Thread1
{
BoolKeeper ololo(b);
// что-то делаем
}
void Thread2
{
// что-то делаем
BoolKeeper ololo(b);
// что-то делаем, причём в этом месте нам важен факт, что Thread1 не выполняется
}
http://www.gamedev.ru/flame/forum/?id=171558
LispGovno,
13 Января 2013
-
+19
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
}
void main (){
int prog=0,n;
printf ("Which programm? ");
scanf ("%d",&prog);
if (prog==1){
int glas=0,sogl=0,j=0,k=0;
char *s,*l,*m;
s=(char*)calloc(20,sizeof(char));
l=(char*)calloc(20,sizeof(char));
m=(char*)calloc(20,sizeof(char));
flushall();
printf ("\nEnter text: ");
gets(s);
n=strlen(s);
/*Разбиваем на два массива исходную строку*/
for (int i=0;i<n;i++){
if(s[i]=='a'||s[i]=='q'||s[i]=='e'||s[i]=='y'||s[i]=='u'||s[i]=='i'||s[i]=='o'||s[i]=='j'){ l[j]=s[i]; glas++;j++;}
if(s[i]=='g'||s[i]=='f'||s[i]=='d'||s[i]=='s'||s[i]=='p'||s[i]=='t'||s[i]=='r'||s[i]=='w'||s[i]=='h'||s[i]=='k'||s[i]=='l'||s[i]=='z'||s[i]=='x'||s[i]=='c'||s[i]=='v'||s[i]=='b'||s[i]=='b'||s[i]=='n'||s[i]=='m'){ m[k]=s[i];sogl++;k++;}
}
printf ("\nDivided:\n");
puts(l);puts(m);
/*Сортируем каждый массив*/
char c=51,d=11;
for(j=0;j<sogl;j++) {for (int i=0;i<sogl;i++){if (m[i]>m[i+1] && (i+1)<sogl){d=m[i+1]; m[i+1]=l[i]; m[i]=d;}}}
for(j=0;j<glas;j++){ for (int i=0;i<glas;i++){if (l[i]>l[i+1] && (i+1)<glas){c=l[i+1]; l[i+1]=l[i]; l[i]=c;}}}
printf ("\nFinal:\n");
puts(l);
flushall();
puts(m);
}
Источник: http://otvety.google.ru/otvety/thread?tid=78a81d7ac11a8804&table=/otvety/topics?clk=lftpn&tab=wtmtosb
Цитата: "Задача: Написать программу для обработки строки следующим образом: вначале должны идти гласные буквы, упорядоченные по возрастанию (aaeeiioo), затем согласные, упорядоченные по убыванию.
Написал программу, она нормально сортирует гласные, но когда переходит к согласным - совершенно не работает."
10a10b1s,
12 Января 2013
-
+13
- 1
- 2
- 3
- 4
- 5
- 6
- 7
long a=1;
for(;;)
{
long *p_ex = new long;
*p_ex = a++;
std::cout << *p_ex << std::endl;
}
"У кого больше?" Или пытки компа утечкой памяти)
FreeLife,
12 Января 2013
-
+11
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
#include <QVector>
#include <QString>
template< class TYPE>
class call
{
public:
call( TYPE& vl ): value(vl){}
TYPE& value;
};
template< class TYPE>
call<TYPE> all( TYPE& vl )
{ return call<TYPE>(vl); }
template< class TYPE_OUT, class TYPE>
void operator << ( TYPE_OUT& out, call<TYPE>& in )
{
TYPE& value = in.value;
for( TYPE::iterator itr = value.begin() ; itr!=value.end(); itr++)
out << *itr;
}
//**********************************************************************
QVector<int> arr;
QVector<QString> arrStr;
class Cstream{} stream;
void operator << ( Cstream& , const int value)
{
printf("%i\n",value);
}
void operator << ( Cstream& , const QString& value)
{
printf("%s\n",value.toAscii().data());
}
int main(int argc, char *argv[])
{
for( int i=0; i<6;i++)
arr.push_back(i);
arrStr << "asd" << "sadas" << "sadsa";
stream << all(arr);
stream << all(arrStr);
return 0;
}
http://www.gamedev.ru/flame/forum/?id=171504
> @При копирование на говнокод сохранять авторство.
LispGovno,
11 Января 2013
-
+23
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
struct S* gpS;
struct S
{
// this class has no user-defined default ctor
void *operator new (size_t size, void*p, int i)
{
((S*)p)->i = i; // ordinarily, should not initialize
// memory contents inside placement new
return p;
}
int i;
};
Код с сайта майкрософт.
LispGovno,
09 Января 2013
-
+10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
for (int i = 0; i < 15; i++) {
// Прикольное место, надо прокомментировать
// Если наша функция Fork() вернула true, то мы
// в дочернем процессе и форкаться больше не надо
// Форканье - это задача родителя
// Дети этим заниматься не должны
if (Fork()) break;
}
Создание дочерних процессов. Вот такой костыль. Есть идеи, как улучшить?
kafeman,
07 Января 2013
-
+14
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
bool Item::IsBoundByEnchant() const
{
// Check all enchants for soulbound
for (uint32 enchant_slot = PERM_ENCHANTMENT_SLOT; enchant_slot < MAX_ENCHANTMENT_SLOT; ++enchant_slot)
{
if (enchant_slot > PRISMATIC_ENCHANTMENT_SLOT || enchant_slot < PROP_ENCHANTMENT_SLOT_0) // not holding enchantment id
continue;
if (uint32 enchant_id = GetEnchantmentId(EnchantmentSlot(enchant_slot)))
if (SpellItemEnchantmentEntry const* enchantEntry = sSpellItemEnchantmentStore.LookupEntry(enchant_id))
if (enchantEntry->slot & ENCHANTMENT_CAN_SOULBOUND)
return true;
}
return false;
}
Взял из эмулятора World of WarCraft Trinity 4.3.4 ветка.
Все говно в 6 строчке
PERM_ENCHANTMENT_SLOT = 0
MAX_ENCHANTMENT_SLOT = 15
PRISMATIC_ENCHANTMENT_SLOT = 6
PROP_ENCHANTMENT_SLOT_0 = 10
Heisenberg,
03 Января 2013
-
+19
- 1
- 2
- 3
- 4
- 5
- 6
- 7
template<typename T>
static json_string _itoa(T val) json_nothrow {
/*...*/
long value = (long)val;
/*...*/
}
Продолжаю бороться с поддержкой 64-битных чисел в libjson :/
myaut,
30 Декабря 2012
-
+23
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
#include <iostream>
using namespace std;
class Class {
public:
explicit Class(int a) : m_int(a) {}
int get() const { return m_int; }
void swapThis(int a) {
delete this;
Class **thisptr = reinterpret_cast<Class**>(&a);
thisptr--;
*thisptr = new Class(a);
cout << "this: " << this << endl
<< "that: " << *thisptr << endl;
}
private:
int m_int;
};
int main() {
Class *s = new Class(13);
s->swapThis(42);
cout << s->get() << endl;
delete s;
return 0;
}
Что творит хакингкостылинг + инлайн методы.
http://ideone.com/5Kyitw
Elvenfighter,
29 Декабря 2012
-
+24
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
#include <iostream>
#define n 1
int main()
{
using namespace std;
cout << (n < 0 ? 1 : 0)+
((n << 1) < 0 ? 1 : 0)+
((n << 2) < 0 ? 1 : 0)+
((n << 3) < 0 ? 1 : 0)+
((n << 4) < 0 ? 1 : 0)+
((n << 5) < 0 ? 1 : 0)+
((n << 6) < 0 ? 1 : 0)+
((n << 7) < 0 ? 1 : 0)+
((n << 8) < 0 ? 1 : 0)+
((n << 9) < 0 ? 1 : 0)+
((n << 10) < 0 ? 1 : 0)+
((n << 11) < 0 ? 1 : 0)+
((n << 12) < 0 ? 1 : 0)+
((n << 13) < 0 ? 1 : 0)+
((n << 14) < 0 ? 1 : 0)+
((n << 15) < 0 ? 1 : 0)+
((n << 16) < 0 ? 1 : 0)+
((n << 17) < 0 ? 1 : 0)+
((n << 18) < 0 ? 1 : 0)+
((n << 19) < 0 ? 1 : 0)+
((n << 20) < 0 ? 1 : 0)+
((n << 21) < 0 ? 1 : 0)+
((n << 22) < 0 ? 1 : 0)+
((n << 23) < 0 ? 1 : 0)+
((n << 24) < 0 ? 1 : 0)+
((n << 25) < 0 ? 1 : 0)+
((n << 26) < 0 ? 1 : 0)+
((n << 27) < 0 ? 1 : 0)+
((n << 28) < 0 ? 1 : 0)+
((n << 29) < 0 ? 1 : 0)+
((n << 30) < 0 ? 1 : 0)+
((n << 31) < 0 ? 1 : 0)
<< endl;
return 0;
}
Для заданного пятизначного целого числа подсчитать количество его нулей.
Прямо с экзамена. Преподаватель катается по полу. Не шучу.
LispGovno,
25 Декабря 2012