Тестирующая система ejudge использует автоматические скрипты проверки стиля кода.
Для C++ используется утилита ((http://google-styleguide.googlecode.com/svn/trunk/cpplint/ cpplint)) с ключами

%%(php)
cpplint --filter=-legal,-readability/streams,-build/namespaces,-whitespace/braces,-whitespace/newline,-whitespace/line_length,-runtime/int,-runtime/threadsafe_fn,-readability/casting,-build/include_what_you_use,-runtime/arrays
%%



====Символы и отступы====

Величина отступа – четыре пробела. Использование символа табуляции (символа, с кодом 9) запрещается.

Последняя строка должна завершаться символом конца строки. Пустых строк в конце файла быть не должно. В конце любой строки не должно быть пробелов.

Функции должны отделяться пустыми строками. Отдельные смысловые блоки в программе должны отделяться пустыми строками.



====Имена переменных====

Имена переменных, функций, типов должны быть осмысленными и отражать назначение. Слишком длинные имена, однако, не рекомендуются. В именах допускаются сокращения, которые не затрудняют понимание имени и назначения функций и переменных.

Допускается использование односложных имен переменных для счетчиков (i, j, k), а также если это имя фигурирует в условии задачи (N, M, K, L).

В именах должны использоваться только английские слова. Транслитерации русских слов не допускаются.

Если имя переменной или функции состоит из нескольких слов, то они должны разделяться символом подчеркивания или заглавными буквами. Например:
Calc****Sqrt – допустимо
calc_sqrt – допустимо
calculate_square_root – допустимо, но нежелательно (слишком длинное имя)
vychislenie_kornya – недопустимо (используются русские имена)
f – недопустимо (непонятно назначение функции)

Имена констант записываются полностью заглавными буквами. Если имя константы состоит из нескольких слов, для их разделения используются подчеркивания. Например, EPSILON, MAX_SIZE.

Имена массивов и названия типов структур должны записываться с заглавной буквы.



====Арифметические операции====

В одной строчке записывается одна арифметическая операция. Например:

%%(php)
a = b;
b = c;
%%

Бинарные операции разделяются пробелом. После запятой и после точки с запятой в цикле for ставится пробел. Между именем функции и скобками пробел не ставится, с внутренней стороны скобок пробелы не ставятся

%%(php)
a = b + 2 * c;
a = (b + 2) * c;
x = power(a, n);
%%



====Стиль отступов====

=====if=====

Оператор if без else записывается так:
%%(php)
if (test)
{
    statements...
}
%%

Оператор if c else записывается так:
%%(php)
if (test)
{
    statements...
}
else
{
    statements...
}
%%

Последовательность if ... else if ... else if ... else записывается так:
%%(php)
if (test1)
{
    statements...
}
else if (test2)
{
    statements...
}
else
{
    statements...
}
%%


=====while=====

%%(php)
while (test)
{
    statements...
}
do while
do
{
    statements...
}
while (test);
for
for (int i = 0; i < n; ++i)
{
    statements...
}
%%



====Описание структуры====

%%(php)
struct Person
{
    string Name;
    int Age;
};
%%



====Реализация функции====

%%(php)
double power(double a, int n)
{
    statements...
}
%%


Блоки инструкций ветвления и цикла всегда заключаются в фигурные скобочки, даже если они состоят из одной инструкции.



====Использование констант====

Не допускается использование чисел в программе, значение которых неочевидно. Например, запись while (i < 179) недопустима.
Ввод-вывод
Все сообщения об ошибках, предупреждения, отладочные сообщения и прочая диагностическая информация, не являющаяся результатом работы программы в предположении корректных входных данных, должна выводиться на стандартный поток ошибок stderr, то есть примерно так:

%%(php)
cerr << "Неверные входные данные" << endl;
%%

При выводе результата работы на стандартный поток вывода или в текстовый файл вывод должен заканчиваться символом перехода на новую строку. Исключением являются программы, выполняющие посимвольную обработку потока данных.


----
адрес оригинала: ((/Информатика/Архив/2014/8Б1/с/PravilaNapisanijaProgramm))