- 1
- 2
- 3
- 4
- 5
- 6
- 7
// Возвращает квадрат натурального числа
// 4^2 = 1 + 3 + 5 + 7
int sqr(int n) {
int result = 0;
for(int i = 1, a = 1; i <= n; i++, a = a + 2) result += a;
return result;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+68
// Возвращает квадрат натурального числа
// 4^2 = 1 + 3 + 5 + 7
int sqr(int n) {
int result = 0;
for(int i = 1, a = 1; i <= n; i++, a = a + 2) result += a;
return result;
}
Нестандартные решения - залог успешности проекта.
+49
//без комментариев
+49
#include <stdio.h>
#include <math.h>
#include "determinant.h"
double det(double **matrix, int size)
{
if(size==2)
{
return matrix[0][0]*matrix[1][1]-matrix[0][1]*matrix[1][0];
}
else if(size==1)
{
return matrix[0][0];
}
int result = 0;
for(int j=0; j<size; j++)
{
if(matrix[0][j]!=0)
{
result+=matrix[0][j]*(unsigned)pow(-1.f,(unsigned)j)*det(minor(matrix, size, 0, j), size-1);
}
}
return result;
}
double **minor(double **matrix, int size, int str, int col)
{
double **minor=new double *[size-1];
int m_str = 0;
int m_col;
for(int i=0; i<size; i++)
{
if(i!=str)
{
m_col = 0;
minor[m_str]=new double[size-1];
for(int j=0; j<size; j++)
{
if(j!=col)
{
minor[m_str][m_col]=matrix[i][j];
m_col++;
}
}
m_col++;
}
}
return minor;
}
Считаю определитель рекурсией, во время теста в этом сорце вылетает ошибка EXC_BAD_ACCESS(code=1, access=0x8),
после одного прохода рекурсии, с чем это связано? Помогите разобраться :)
+53
class ParseError : public std::exception{
string s;
explicit ParseError(const std::string& s) : s(s) {}
const char* what() const throw() { return s.c_str(); }
};
Это мне нужно в своём исключении-потомке обязательно перегрузить what и добавить свою строку для хранения, чтобы данные, переданные в конструктор s по указателю обязательно выжили после размотки стека.
+53
//
// 'compare_keywords()' - Compare two keywords...
//
extern "C" {
int
compare_keywords(const void *a,
const void *b) {
return (strcmp(*((const char **)a), *((const char **)b)));
}
}
+53
void MainWindow::on_actionHelp_triggered()
{
bool helpNoWritten = 0;
QDir d(QCoreApplication::applicationDirPath()+QDir::separator()+"help");
d.makeAbsolute();
if (d.exists() && d.entryList(QDir::Files).size())
helpNoWritten = !QDesktopServices::openUrl(QUrl::fromUserInput(QFileInfo(d.entryList(QDir::Files).at(0)).absoluteFilePath()));
else
helpNoWritten++;
if (helpNoWritten)
QMessageBox::warning(0,"Warning",QString::fromUtf8("Похоже документацию так никто и не написал... можете почитать исходники.\nЕсли напишете положите в папку help рядом с программой"), QString::fromUtf8("Okay..."));
}
Код вроде бы хороший, читается не очень да не суть... дело тут не в коде.
+58
MainWindow::~MainWindow()
{
delete ui;
}
struct t_point {
int i,j;
};
#define stack_len 50000000
long int head, tail;
t_point *steck;
// long int take_border( short int*arr, int h1, int w1, int deep ){
long int take_border( short int*arr, int h1, int w1 ){
long int k=0;
//int i,j,m,n,ii,jj;
int i,j,m,ii,n,jj;
steck = (t_point*) malloc(tail*sizeof(t_point));
if(! steck ){
//ui->teDebug->setText("out of Memory");
return 0;
}
{
QFile file("buffer.dat");
file.open(QIODevice::ReadOnly);
unsigned int size = sizeof(t_point)* tail;
QDataStream in(&file); // we will serialize the data into the file
in.readRawData((char*) steck, size );
}
// <...>
}
Это чувство когда сишник взялся писать на Qt.
+51
PVOID ZDbgDoc::getVaByName(PCSTR name)
{
PLIST_ENTRY head = &_dllListHead, entry = head;
while ((entry = entry->Flink) != head)
{
ZDll* pDll = static_cast<ZDll*>(entry);
if (PWSTR ImageName = pDll->_ImageName)
{
PCSTR sz = name;
__loop:
int c = tolower(*sz++);
if (!c || c != towlower(*ImageName++))
{
continue;
}
if (c != '.')
{
goto __loop;
}
pDll->Parse(this);
return pDll->getVaByName(sz, this);
}
}
return 0;
}
+70
QString windoliz_path(QString str)
{
/*
функция "виндолизирует" QTшные пути, для передачи в неQTшные части проги
(в QT-шные, кстати тоже можно, ибо QT вроде бы понимает и те и другие ;)
если вызвать вне винды ничо страшного, предпроцессор сделает всё за вас
и функция вернёт ту же строку что и получила. После вызова в виндах не
помешает сделать .toLocal8Bit()
//*/
#ifdef _WIN32 //если венда
char s = '\\'; //символ для замены
char t = '/'; //шаблон поиска
for (int i = str.size();i;i--) //повторить столько раз сколько символов в строке
{
if (str[i-1] == t) //если символ соответствует образцу поиска
{
str[i-1] = s; //меняем на образец замены
}
}
#endif //директива отметы условия "если венда"
return str;
}
Этот проект не перестаёт удивлять... апи не смотри, велосипеды пиши. Коммент сохранен авторский.
+56
std::uint8_t octets[4];
for(int i = 0; i < 4; ++i) {
if(i != 0 && inp.get() != '.')
{ assert(false && "unexpected symbol"); }
inp >> octets[i];
}
Два вида говна: в коде и в языке.