- 1
memmove(&*_Dest, &*_First, _Count * sizeof (*_First));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+991
memmove(&*_Dest, &*_First, _Count * sizeof (*_First));
в библиотеке memory, может я чего-то не понял, но выглядит как операция "подёргивание-2" (&*_Dest)
+1009
mExpanded = onExpandClick ? !mExpanded : mExpanded;
+141
#include <iostream>
using namespace std;
int main()
{
int n, m, c, b, f = 0;
cin >> n >> m;
int A[n][m];
for(int i = 0; i < n; i++ )
{
for(int j = 0; j < m; j++)
{
cin >> A[i][j];
}
}
for(int i = 0; i < n; i++ )
{
b = A[i][0];
for(int j = 0; j < m; j++)
{
c = A[0][j];
for(int a = 0; a < n; a++)
{
if(c < A[0][a])
{
c = A[0][a];
}
}
for(int k = 0; k < m; k++)
{
if(b > A[k][0])
{
b = A[k][0];
}
}
if(b == c)
{
f++;
}
}
}
cout << f;
return 0;
}
Задана матрица K, содержащая n строк и m столбцов. Седловой точкой этой матрицы назовем элемент, который одновременно является минимумом в своей строке и максимумом в своем столбце.
Найдите количество седловых точек заданной матрицы.
Вроде всё правильно, а выдаёт, что есть необработаное исключение.Что не так?
+1000
void drawFigure()
{
for(int i=0;i<figMaxI;i++)
for(int j=0;j<figMaxY;j++)
if(figure.space[i][j].wut==1)
{
if(figure.y+i>=2)
if(figureEffekt == 1)
{
engine->drawTexture2D(figure.picture.texID, gameSpace.x+((figure.x+j)*34)-effekt[0].x, gameSpace.y+((figure.y+i)*34)-effekt[0].y, 34, 34, 0.4, 0, 0);
engine->drawTexture2D(figure.picture.texID, gameSpace.x+((figure.x+j)*34)+effekt[0].y, gameSpace.y+((figure.y+i)*34)+effekt[0].x, 34, 34, 0.8, 0, 0);
engine->print(fontAlphabet,0, figure.space[i][j].letter , gameSpace.x+((figure.x+j)*34)+6+effekt[0].y,gameSpace.y+((figure.y+i)*34)+4+effekt[0].x,1,0,2);
}
else
{
engine->drawTexture2D(figure.picture.texID, gameSpace.x+((figure.x+j)*34), gameSpace.y+((figure.y+i)*34), 34, 34, 1, 0, 0);
engine->print(fontAlphabet,0, figure.space[i][j].letter , gameSpace.x+((figure.x+j)*34)+6,gameSpace.y+((figure.y+i)*34)+4,1,0,2);
}
}
}
великое и могучее ООП в действии
+142
void main()
{
int mass[6]={4,1,3,5,7,0};
quicksort(mass,5);
while(mass[5]<7)
printf("%d",mass[5]);
getch();
}
в общем дал препод готовую программу, задание было найти ошибки, так как программа компилируется, и вроде как ошибка не очевидна, как там виндовс выполнять это будет не знаю, у меня бы вылетело с ошибкой сегментирования, делаю предположение. Изначально проблемное место выглядело примерно так:
while(mass[5]<5)
printf("%d",mass[mass[5]]);
вот это исправление одного из студентов нашего потока, так это второй курс специальности ЭВМ, (facepalm)
+1005
unsigned
int
length () {
unsigned
int
number = (this -> number + 1) % 16;
int
second = size - number;
return (second / 16) + (1 % ((second % 16) + 1)) + (1 % (number + 1));
}
Вот такая фигня у нас в коде, работающем в аппаратуре отображения и протоколирования данных на АЭС.
Авторское форматирование сохранено.
Нашли когда оно с новыми конфигами стало падать от деления на ноль при запуске.
+159
void CXMLParser::Parse(std::map< std::pair<int, int>, int >& link)
{
_di_IXMLNode areaNode = MessageNode->ChildNodes->FindNode( WideString("area") );
if( areaNode )
{
Area.reset( new CAreaPart( areaNode ) );
IXMLNodeList* pointList = areaNode->ChildNodes;
if( pointList )
{
for(int pointIndex=0; pointIndex<pointList->GetCount(); pointIndex++)
{
_di_IXMLNode pointNode = pointList->Get( pointIndex );
int typePoint = -1;
if( pointNode->GetNodeName() == WideString("measuringpoint") )
typePoint = MEASURING;
if( pointNode->GetNodeName() == WideString("accountpoint") )
typePoint = ACCOUNT;
if( pointNode->GetNodeName() == WideString("deliverypoint") )
typePoint = DELIVERY;
switch( typePoint )
{
case MEASURING:
case ACCOUNT:
case DELIVERY:
{
const int pointCode = pointNode->GetAttribute( WideString("code") );
const String pointName = pointNode->GetAttribute( WideString("name") );
IXMLNodeList* channelList = pointNode->ChildNodes;
if( channelList )
{
for(int channelIndex=0; channelIndex<channelList->GetCount(); channelIndex++)
{
_di_IXMLNode channelNode = channelList->Get( channelIndex );
if( channelNode->GetNodeName() == WideString("measuringchannel") )
{
const int channelCode = channelNode->GetAttribute( WideString("code") );
const String channelDesc = channelNode->GetAttribute( WideString("desc") );
IXMLNodeList* periodList = channelNode->ChildNodes;
if( periodList )
{
for(int periodIndex=0; periodIndex<periodList->GetCount(); periodIndex++)
{
_di_IXMLNode periodNode = periodList->Get( periodIndex );
if( periodNode )
{
String str = periodNode->GetAttribute( WideString("start") );
periodNode->GetAttribute( WideString("end") );
TDateTime time;
time = TDateTime( StrToInt( str.SubString( 1, 2 ) ), StrToInt( str.SubString( 3, 2 ) ), 0, 0 );
periodNode->GetAttribute( WideString("summer") );
time = IncMinute( time, 30 );
_di_IXMLNode valueNode = periodNode->ChildNodes->FindNode( WideString("value") );
if( valueNode )
{
const int status = valueNode->GetAttribute( WideString("status") );
const int value = StrToInt( valueNode->Text );
if( RTDBWrite )
{
map< pair<int, int>, int >::iterator i = link.find( make_pair( pointCode, channelCode ) );
if( i!=link.end() )
{
(*RTDBWrite)( Date->DateInterval.first + time, (*i).second, value, status );
}
}
}
}
}
}
}
}
}
}
}
}
}
}
RTDBWrite->Flush();
}
Древний legacy-код на БорландЦэпэпэБыдлере, обнаруживаемый на текущей работе (почти госпредприятие), выглядит в основной своей массе примерно так. Новый код на C# чуть получше, но в целом тоже жуткое мракобесие.
Сил больше нет работать с подобным, увольняюсь и ищу норм работу.
+999
#include <iostream>
#include <algorithm>
#include <stdlib.h>
const size_t MB = 1024*1024;
size_t MOD = 0;
unsigned char uniqueNumber () {
static unsigned char number = 0;
return ++number % MOD;
}
int main(int argc, char** argv) {
if (argc < 3) {
return 1;
}
size_t BLOCK_SIZE = atoi(argv[1]) * MB;
MOD = atoi(argv[2]);
unsigned char* garbage = (unsigned char *) malloc(BLOCK_SIZE);
std::generate_n(garbage, BLOCK_SIZE, uniqueNumber);
std::sort(garbage, garbage + BLOCK_SIZE);
free(garbage);
return 0;
}
http://habrahabr.ru/blogs/cpp/138132/
It makes me cry. Понятно, что это всего лишь демонстрационный пример. Но все таки это не оправдание. Итак, начнем по порядку с самого худшего:
1. Сишные malloc/free вперемешку с STL-алгоритмами. WTF? Зачем?
2. Глобальная переменная? Автор не осилил хотя бы bind? Который, к тому же, уже давно std::bind.
3. Uppercase для локальной переменной.
4. Отступ в джва пробела.
+997
void TexQ::Move()
{
mx = quad.v[0].x;
my = quad.v[0].y;
if(hge->Input_GetKeyState(HGEK_RBUTTON) || hge->Input_KeyDown(HGEK_LBUTTON))
{
hge->Input_GetMousePos(&nx, &ny);
move = true;
sx = GetPositionX();
sy = GetPositionY();
subx = nx - sx;
suby = ny - sy;
if ( abs(subx) > abs(suby) )
{
iter = abs(subx);
ms = subx;
subx = (subx < 0) ? -1.0f : 1.0f;
suby = (suby < 0 ) ? suby/abs(ms) : abs(suby/ms);
}
else
{
iter = abs(suby);
ms = suby;
suby = (suby < 0) ? -1.0f : 1.0f;
subx = (subx < 0 ) ? subx/abs(ms) : abs(subx/ms);
}
}
if (move)
{
if (iter >= shift)
{
iter-=shift;
this->SetPosition(
GetPositionX() + subx * shift,
GetPositionY() + suby * shift);
}
else
{
this->SetPosition(nx , ny);
move = false;
}
}
}
Хреновый из меня математик. Этот метод втыкается в функцию фрейминга. И текстура едет по прямой туда, куда мышью тыкнешь.
Позже узнал, как можно тригонометрией в 5 строк написать такую же )
+153
dData->RowCount++;
for (int i = 0; i < dData->RowCount - 1; i++)
for (int j = 0; j < dData->ColumnCount; j++)
dData->Rows[i]->Cells[j]->Value = dData->Rows[i + 1]->Cells[j]->Value;
Мучил седня DataGridView, при dData->RowCount++ создавалась новая строчка в таблице, но только сверху. Остальное съезжало вниз на 1 ячейку. Я боролся полчаса с этим, пока не объяснил проблему товарищу. он предложил свой вариант всего кода:
dData->Rows->Add();
:DDDD