- 1
- 2
- 3
int main() {
for (float n = 0, l = 0, q = scanf("%f", &n), r = n, m = (l + r) / 2; r - l > 0.00001 || 0 * printf("%f", l); m*m <= n ? l = m : r = m, m = (l + r) / 2);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+3
int main() {
for (float n = 0, l = 0, q = scanf("%f", &n), r = n, m = (l + r) / 2; r - l > 0.00001 || 0 * printf("%f", l); m*m <= n ? l = m : r = m, m = (l + r) / 2);
}
Просто бинпоиск в одну строчку)
+2
if ( LIKELY( _mode == normal ))
_mode задается один раз в начале программы по конфигурационному файлу.
+3
__fastcall OpenArray(T arg0, T arg1, T arg2, T arg3, T arg4, T arg5, T arg6,
T arg7, T arg8, T arg9, T arg10, T arg11, T arg12,
T arg13, T arg14, T arg15, T arg16, T arg17, T arg18)
{
Array = new T[Count = 19];
Array[0] = arg0;
Array[1] = arg1;
Array[2] = arg2;
Array[3] = arg3;
Array[4] = arg4;
Array[5] = arg5;
Array[6] = arg6;
Array[7] = arg7;
Array[8] = arg8;
Array[9] = arg9;
Array[10] = arg10;
Array[11] = arg11;
Array[12] = arg12;
Array[13] = arg13;
Array[14] = arg14;
Array[15] = arg15;
Array[16] = arg16;
Array[17] = arg17;
Array[18] = arg18;
}
Старый недобрый C++ Builder. Выше по коду еще 17 таких же конструкторов.
0
unsigned int FileScanner::smartBruteForce(QByteArray &haystack, QByteArray &needle)
{
unsigned int count = 0;
unsigned int dataSize = haystack.size();
unsigned int needleSize = needle.size();
unsigned int needleSizeCut = needleSize - 1;
char* dp = haystack.data();
char* np = needle.data();
char lastNeedle = *(np + needleSize - 1);
for(unsigned int i = 0; i < dataSize - needleSize + 1; i++)
{
if(*(dp + (i + needleSizeCut)) != lastNeedle) //This is smart technology ))))
continue;
unsigned int j;
for(j = 0; j < needleSize; j++)
{
if(*(dp + (i + j)) != *(np + j))
break;
}
if(j == needleSize)
count++;
}
return count;
}
−1
bool Diagram::checkIsOverlayElements(const int index)
{
int _x0, _y0, _xX, _yY;
int x0 = _vectorFigure[index]->getCoordinate().getX0();
int y0 = _vectorFigure[index]->getCoordinate().getY0();
int xX = _vectorFigure[index]->getCoordinate().getXx();
int yY = _vectorFigure[index]->getCoordinate().getYy();
for(int _index = 0; _index < _vectorFigure.size(); _index++)
{
_x0 = _vectorFigure[_index]->getCoordinate().getX0();
_y0 = _vectorFigure[_index]->getCoordinate().getY0();
_xX = _vectorFigure[_index]->getCoordinate().getXx();
_yY = _vectorFigure[_index]->getCoordinate().getYy();
if(((x0 >= _x0 && x0 <= xX)
&&(y0 >= _y0 && y0 <= _yY))
||((xX >= _x0 && xX <= _xX)
&&(yY >= _y0 && yY <= _yY))
||((x0 >= _x0 && x0 <= xX)
&&(yY >= _y0 && y0 <= _yY))
||((xX >= _x0 && xX <= _xX)
&&(y0 >= _y0 && yY <= _yY)))
{
return true;
}
}
return false;
}
Проверка наложения фигур друг на друга.
−2
int abs(int x)
{
int a = x;
if(x >= 0)
{
return a;
}
else if(x < 0)
{
a = a^2;
a = sqrt(a);
return a;
}
}
Поиск абсолютного значения числа.
+2
bool matchingNumerals(int num)
{
QString str = QString("%1").arg(num);
for (int i = 0; i < 10; i++)
if (str.split(QString("%1").arg(i)).size() > 2)
return true;
return false;
}
Функция, определяющая, есть ли в числе одинаковые цифры на великой могучей Qt.
+1
// Определение метода Q3CanvasText::text()
class Q_COMPAT_EXPORT Q3CanvasText : public Q3CanvasItem {
//...
QString text() const;
//...
};
// Далее уже в "моем" классе строчка:
class CDevice : public CDiagramObject {
// ...
private:
Q3CanvasText * m_pTitle;
//....
public:
const QString & stitle() const { return m_pTitle->text(); } // обратим вниманиена возвращаемый тип
// ...
};
// Еще один класс и отображение тултипа при наведении
void CDiagramView::showToolTip( const QPoint & p, CDevice * d ) {
if( d ) {
QString tmp;
if( d->group() == QString::null || d->group() == "" )
tmp = ( d->stitle().left( d->stitle().indexOf(":") ) ); // вылетало здесь : d->stitle().indexOf(":") segmentation fault
else
tmp = d->group();
//.....
}
}
Нашел магию!
Юзаю Qt 4.8.6 в Linux
Под Виндой новая версия перепиливаемой проги компилится и работает,
под Линухом новая версия вылетает, старая робит.
Соль в том, что метод stitle() по факту возвращает ссылку на копию текста возвращенного Q3CanvasText::text(), которая внезапно удаляется при выходе из метода.
Но почему тот же gcc под виндой скомпилил это без багов?
+9
int naive_show_int(int x) {
char buf[32];
char *p = buf + sizeof(buf);
*--p = 0;
int negative = 0;
if (x < 0) {
x = -x;
negative = 1;
}
while (x > 0) {
if (x <= 0)
return -1;
int digit = '0' + x % 10;
if (digit < '0' || digit >= '9')
return -1;
*--p = digit;
x /= 10;
}
if (negative)
*--p = '-';
puts(p);
return 0;
}
Допустишь один UB - ничто уже не спасёт твою прогу...
http://ideone.com/EFGoBi
−1
#include <iostream>
using namespace std;
auto print(auto arg)
{
return (cout<<arg);
//return cout;
}
auto print(auto arg, auto... args)
{
return (print(args...)<<arg);
//return cout;
}
int main() {
print(1,"ko")<<"ok";
return 0;
}
https://ideone.com/YvoHi3
ГЦЦ так и не научился в возвращаемые значения с авто