- 1
- 2
- 3
- 4
int a=0;
while (a<=1 && a>=0) {
a--;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+17
int a=0;
while (a<=1 && a>=0) {
a--;
}
Я даже хз, что тут автор делает...
−8
Program print_numbers_twice;
Procedure give(p: pptrint);
begin
if pptrint(p^) <> nil then begin
give(pptrint(p^));
writeln((p-1)^)
end
end;
Procedure take;
var n: ptrint;
begin
if not SeekEof then begin
read(n);
take
end else begin
n := (pptrint(@n)+1)^;
give(pptrint(n));
give(pptrint(n))
end
end;
Begin
take
End.
На входе программа получает неизвестное заранее количество целых чисел, разделенных пробельными символами, а затем выводит их два раза в том же порядке по одному числу в строке.
Очень простая и короткая программа. Я думаю, вам не составит труда понять, как она работает. Пишите в комментариях!
+1
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SQARESZ 3
void rotateclockwise(char *ptra, size_t sz)
{
char (*a_ar)[sz] = (void *)ptra;
char b_ar[sz][sz];
for (size_t y = 0; y < sz; y++)
{
for (size_t x = 0; x < sz; x++)
{
b_ar[y][x] = a_ar[sz-1-x][y];
}
}
memcpy(a_ar, b_ar, sz*sz);
}
void print_ar(char *ptra, size_t sz)
{
char (*a_ar)[sz] = (void *)ptra;
for (size_t y = 0; y < sz; y++)
{
for (size_t x = 0; x < sz; x++)
{
printf("%i ", a_ar[y][x]);
}
printf("\n");
}
}
int main()
{
char a[SQARESZ][SQARESZ] =
{
{1,2,3},
{4,5,6},
{7,8,9}
};
print_ar((char *)a, SQARESZ);
printf("\n");
rotateclockwise((char *)a, SQARESZ);
print_ar((char *)a, SQARESZ);
printf("\n");
rotateclockwise((char *)a, SQARESZ);
print_ar((char *)a, SQARESZ);
printf("\n");
rotateclockwise((char *)a, SQARESZ);
print_ar((char *)a, SQARESZ);
printf("\n");
rotateclockwise((char *)a, SQARESZ);
print_ar((char *)a, SQARESZ);
printf("\n");
return 0;
}
https://habr.com/post/317300/ В C++17 до сих пор нет нормальных многомерных массивов, которые были в Fortran начиная с Fortran 90
> UPD от 2016-12-10 14:03. Посмотрел на этот коммент от @selgjos, поэкспериментировал с компилятором и понял, что с помощью C99 VLA всё-таки можно добиться нужного мне эффекта.
> В общем, окей, в C есть нужные мне массивы. Как и в Fortran. А в C++ их по-прежнему нет.
+161
//Создаём новое изображение из старого // gif png jpg
if (preg_match('/[.](GIF)|(gif)$/', $filename)) {
$src = imagecreatefromgif($target); //если оригинал был в формате gif,
} else if (preg_match('/[.](PNG)|(png)$/', $filename)) {
$src = imagecreatefrompng($target); //если оригинал был в формате png,
} else if (preg_match('/[.](JPG)|(jpg)|(jpeg)|(JPEG)$/', $filename)) {
$src = ImageCreateFromJPEG($target); //если оригинал был в формате jpg,
} else {
throw new Exception('формат не определён, шли-бы вы лесом');
}
+126
typedef struct {
uint32_t id;
char * title;
} dbrow_t;
typedef struct {
char * context;
dbrow_t dbrow;
} parser_context_t;
typedef enum {
bad_char = 0,
identifer,
number,
state_end_context,
state_end_line
} type_t;
type_t ch_d[0x100] = { [0] = state_end_line, [1 ... 0xff] = bad_char, ['0' ... '9'] = number, ['a' ... 'z'] = identifer, ['\n'] = state_end_context};
inline char * do_other_type(char * p, type_t type) { while(ch_d[*(++p)] == type); return p;}
static inline uint64_t bad_char_headler(parser_context_t * context) { context->context = do_other_type(context->context, bad_char); return 1;}
static inline uint64_t number_headler(parser_context_t * context) {
uint32_t id = 0; char * p = context->context;
while(({ id *= 10; id += (*p - '0'); ch_d[*(++p)];}) == number);
context->dbrow.id = id; context->context = p;
return 1;
}
static inline uint64_t identifer_headler(parser_context_t * context) {
char * p = context->context, * title = context->dbrow.title;
char * end_identifer = do_other_type(p, identifer);
memcpy(title, p, (end_identifer - p)); *(title + (end_identifer - p)) = 0;
context->context = end_identifer;
return 1;
}
static inline uint64_t end_context_headler(parser_context_t * context) {
context->context = do_other_type(context->context, state_end_context);
if(context->dbrow.id && *context->dbrow.title)
fprintf(stderr, "id = %u, title = %s\n", context->dbrow.id, context->dbrow.title);
context->dbrow.id = 0, *context->dbrow.title = 0;
return 1;
}
static inline uint64_t end_line_headler(parser_context_t * context) { return 0; }
typedef uint64_t(*headler_ptr_t)(parser_context_t *);
headler_ptr_t headlers[] = { [bad_char] = bad_char_headler, [identifer] = identifer_headler, [number] = number_headler, [state_end_context] = end_context_headler, [state_end_line] = end_line_headler };
int main(void) {
char * content = strcpy(malloc(50), "1|raz\n11|dva\n21|tri\n31|shestb\n5000|test\n|||\n||\n|\n");
parser_context_t context = (parser_context_t){ .context = content, .dbrow = (dbrow_t){ .title = malloc(1000)}};
while(headlers[ch_d[*(context.context)]](&context));
return 0;
}
Решил пацанам показать как писать парсер - вышло говно. Хотя так-то должно тащить - забенчите кто-нибудь, настолько это гумно медленнее strtok()'а.
+144
Короче, ушла я от вас.
Не вписываюсь в коллектив, что уж поделаешь. Все плюсуют улюлюкающих троллей и минусуют мои претензии по поводу культуры общения.
От администрации никаких конкретных действий не вижу. Видать, это здесь и есть норма. Что ж, найду сообщество покультурнее.
Правда, скорее всего англоязычное. На русских варваров уже надежды никакой.
Не думаю, что это тут кого-то к чему-то сподвигнет, менталитет не тот, а эффект толпы только убеждает их в правоте действий.
Но в любом случае своё "фи" я выразила и теперь умываю руки.
Пароля не будет, вход по OpenID. Можете банить, мне уже всё равно.
Lure of Chaos, спасибо за хоть какую-то поддержку. Пусть не настолько, как хотелось бы, но хоть единственный за меня вступался.
+1005
void bvnr(char *text)
{
for(int f=0; f<=strlen(text); f++)
{
switch(text[f])
{
case 'Q' : text[f] = 'q' ; break;
case 'W' : text[f] = 'w' ; break;
case 'E' : text[f] = 'e' ; break;
case 'R' : text[f] = 'r' ; break;
case 'T' : text[f] = 't' ; break;
case 'Y' : text[f] = 'y' ; break;
case 'U' : text[f] = 'u' ; break;
case 'I' : text[f] = 'i' ; break;
case 'O' : text[f] = 'o' ; break;
case 'P' : text[f] = 'p' ; break;
case 'A' : text[f] = 'a' ; break;
case 'S' : text[f] = 's' ; break;
case 'D' : text[f] = 'd' ; break;
case 'F' : text[f] = 'f' ; break;
case 'G' : text[f] = 'g' ; break;
case 'H' : text[f] = 'h' ; break;
case 'J' : text[f] = 'j' ; break;
case 'K' : text[f] = 'k' ; break;
case 'L' : text[f] = 'l' ; break;
case 'Z' : text[f] = 'z' ; break;
case 'X' : text[f] = 'x' ; break;
case 'C' : text[f] = 'c' ; break;
case 'V' : text[f] = 'v' ; break;
case 'B' : text[f] = 'b' ; break;
case 'N' : text[f] = 'n' ; break;
case 'M' : text[f] = 'm' ; break;
)
}
}
Перевод текста в нижний регистр. Можно пугать детей на ночь))
0
<?php
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if($_POST['SESS_PARAM'] && $_POST['SESS_PARAM'] !='' && $_POST['SESS_PARAM_VALUE'] && $_POST['SESS_PARAM_VALUE'] !=''){
$_SESSION[$_POST['SESS_PARAM']] = $_POST['SESS_PARAM_VALUE'];
echo 'ok';
}else{
echo 'error';
}
утверждают что сайт им писали лучшие из лучших
+3
Помните шутку про 1С/C++/CSH программиста?
Так вот: парень хочет работать с COM портом, но почему-то COM объект в Windows не создается.
https://phpclub.ru/talk/threads/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-failed-to-create-com-object.86770/
+4
'use strict';
const isOdd = require("is-odd");
module.exports = function isIsOdd(func) {
return func == isOdd;
}
https://www.npmjs.com/package/is-is-odd
Why
Some functions are not is-odd but they might make you think they're is-odd, this package helps you identify these functions with a simple interface.
Нить бессмысленных npm-модулей.