- 1
class User : public database
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+144
class User : public database
суслик - это разновидность зоопарка.
+137
#include <iostream>
template <typename T>
struct Symbol {};
template <>
struct Symbol<int> {
static constexpr const char value = 'd';
};
template <>
struct Symbol<float> {
static constexpr const char value = 'f';
};
template<std::size_t N, typename T>
constexpr bool check_arg_part(const char (&s)[N], size_t i, T d)
{
if (i == N)
return true;
if (i < N - 1) {
if (s[i] == '%') {
if (s[i + 1] != Symbol<T>::value)
return false;
}
}
return check_arg_part(s, i + 1, d);
}
template<std::size_t N, typename T>
constexpr bool check_arg(const char (&s)[N], T d) {
return check_arg_part(s, 0, d);
}
int main(int , char*[]) {
std::boolalpha(std::cout);
constexpr bool r = check_arg("foo is int: %d", 1);
std::cout << "Argument integer is correct: " << r << std::endl;
constexpr bool r1 = check_arg("foo is float: %f", 1.0f);
std::cout << "Argument float is correct: " << r1 << std::endl;
constexpr bool r2 = check_arg("foo is float: %f", 1);
std::cout << "Argument int is correct: " << r2 << std::endl;
return 0;
}
По мотивам http://govnokod.ru/17925:
Функция в compile time проверяет соответствие типов. Работает на clang и почему-то валится на gcc.
+125
Bool_vector::operator«(int) // сдвиг
{
int i;
for (i=0;i<this->n;i++)
cout»(*this)[i];
}
Человек далёк от программирования.
Пытается написать лабу.
Не блондинко.
Я при виде этого не сдержался.
+134
static_cast<Vampire*>(&attacker)->suckHpFrom(attacked, damage * Vampire::hpSuckRatio);
+46
#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
double f(double x, double y)
{
return y*y-2*x;
}
double f2(double x)
{
return sqrt(2*x+1);
}
int main(void) {
std::ofstream out;
out.open("out.txt");
double xn = 0, yn = 1, a = 0, b = 1, h = 0.2, x, y, n;
int i;
n = (b - a) / h;
y = yn;
x = a;
printf("x[0]=%.4f ", x);
printf("y[0]=%.4f\n\n", y);
double k1, k2, k3, k4, dy, y1;
cout << " i " << "x[i] " << "y[i] " << "y[x[i]] " << "E" << endl;
for (i = 1; i <= n; ++i)
{
x = xn + i*h;
k1 = h*f(x, y);
k2 = h*f((x + (h / 2)), (y + (1 / 2 * k1)));
k3 = h*f((x + (h / 2)), (y + (1 / 2 * k2)));
k4 = h*f((x + h), (y + k3));
dy = (k1 + 2 * k2 + 2 * k3 + k4) / 6;
y = y + dy;
y1 = f2(x);
printf("%2d. ", i);
printf("%.5f ", x);
printf("%.5f ", y);
printf("%.5f ", y1);
printf("%.9f\n", abs(y-y1));
}
out << y1 << '\n';
out.close();
return 0;
}
В out выводится только последнее значение y1.
Сам цикл проходит (в данном случае) 5 раз
Соответственно, 5 значений y1
Как сделать, чтобы он показывал все пять значений?
+54
#include <iostream>
using namespace std;
int sumc(int n) {
int res = 0;
while (n != 0) {
int tmp = n % 10;
n /= 10;
res += tmp * tmp;
}
return res;
}
int main () {
freopen("input.txt", "rt", stdin);
freopen("output.txt", "wt", stdout);
int x;
cin >> x;
int i;
for (i = x + 1; sumc(i) % 7; ++i);
cout << i;
//код рабочий, а в комментах изначальный говно-вариант
/*int a[5];
a[0]=0;
a[1]=0;
a[2]=0;
a[3]=0;
a[4]=0;
int n = 4;
while (x > 0) {
a[n] = x%10;
x=x/10;
n--;
}
while (1 == 1) {
if ((a[0]*a[0]+a[1]*a[1]+a[2]*a[2]+a[3]*a[3]+a[4]*a[4])%7 == 0)
break;
a[n]++;
for (int j=n; n>0; j--) {if (a[j]=10) {
a[j-1]++;
a[j] = 0;
};
};
};
int j=-1;
while (1) {
++j;
if (a[j] != 0) break;
};
for (int l=j; l<5; l++){
cout << a[l];
};*/
return 0;
}
код рабочий, а в комментах изначальный говно-вариант
+53
void ServerList::ParseServers(char *response, int len){
numservers = 0;
int i;
QHostAddress srvadr;
const char *info = "\xFF\xFF\xFF\xFFgetinfo\x00";
for(i = 23; i < len; i+=7){
quint16 port = (((* (quint8 *)(response + i + 4)) << 8) | (* (quint8 *)(response + i + 5)));
quint32 addr = (((* (quint8 *)(response + i)) << 24)|((* (quint8 *)(response + i + 1)) << 16)|((* (quint8 *)(response + i + 2)) << 8)|(* (quint8 *)(response + i + 3))); //XD
srvadr.setAddress(addr);
qDebug() << srvadr << " : " << port;
if(getinfo->writeDatagram(info, 15, srvadr, port) <0 ){
qDebug() << "FAILED";
}
numservers++;
}
serverlist->setRowCount(numservers);
qDebug() << numservers;
}
Пздц.
+56
std::map<int, int> aSummator; //Массив частичных сумм
std::vector<int> v; //Исходный массив
void InitSummator()
{
aSummator[0] = v[0];
aSummator[-1] = 0;
for(int i = 1; i < int(v.size()); i++)
{
aSummator[i] = aSummator[i - 1] + v[i];
}
}
int GetSum(int l, int r)
{
return aSummator[r] - aSummator[l - 1];
}
Как я писал сумматор 0.1 года назад. Вместо того, чтобы написать один if, я использовал std::map, что увеличило ассимптотику алгоритма на запрос с O(1) до O(log(n)). Но задачу при тех ограничениях (в массиве до 100000 элементов, запросов не более 100000) алгоритм решил. Преподу, естественно, показывать забоялся.
+57
#include <iostream>
#include <stdexcept>
template<std::size_t N>
static int constexpr date_component(const char (&s)[N], int i, bool last, int max) {
return
(i + 2 + (last ? 0 : 1) >= N)
? throw std::logic_error("Too short date string") :
(!last && s[i + 2] != ':')
? throw std::logic_error("Cannot find delimiter") :
(s[i] < '0' || s[i] > '9' || s[i + 1] < '0' || s[i + 1] > '9')
? throw std::logic_error("Not a number") :
((s[i] - '0') * 10 + (s[i + 1] - '0') > max)
? throw std::logic_error("Too large number") :
(s[i] - '0') * 10 + (s[i + 1] - '0');
}
struct time {
int hour; int minute; int second;
template<std::size_t N>
constexpr time(const char (&datestr)[N]) :
hour(date_component(datestr, 0, false, 24)),
minute(date_component(datestr, 3, false, 60)),
second(date_component(datestr, 6, true, 60))
{}
};
struct time constexpr midnight("00:00:00");
struct time constexpr afternoon("12:00:00");
int main(int argc, char* argv[]) {
std::cout << "Midnight hour is " << midnight.hour << std::endl;
std::cout << "Afternoon hour is " << afternoon.hour << std::endl;
}
C++ и даты времени компиляции
+53
for ( ; currnet->prev != NULL; (*this)-- );
медод везвращения итератора к началу