Объясняю: создаёте переменную, лучше целочисленную (int foo), после чего можно либо перевести число в строку и найти сумму цифр путём сложения двух символов (sum = bar[0] - '0' + bar[1] - '0'), либо с остатка от деления (конечно, это не очень красиво, но если известно, что число двузначное, то можно так: sum = (foo / 10) + (foo % 10)). Дальше банальная обработка условия: <если сумма чётная (if (sum % 2 == 0)), то увеличить число на 2 (foo += 2), иначе (else) уменьшить число на 2 (foo -= 2)>. После этого можете вывести результат на монитор (printf("%d\n", &sum)). :)
Поделитесь своими знаниями, ответьте на вопрос:
Здача С++ Точка пересечения прямых На плоскости даны две прямые. Каждая прямая задается парой точек, через которые она проходит. Требуется установить, пересекаются ли эти прямые, и найти координаты точки пересечения. Формат входных данных Первая строка входных данных содержит четыре целых числа - координаты двух точек, через которые проходит первая прямая. Гарантируется, что эти две точки различны. Вторая строка входных данных содержит координаты двух различных точек, через которые проходит вторая прямая. Точки, через которые проходит вторая прямая могут совпадать с точками, через которые проходит первая прямая. Координаты каждой точки - целые числа, по модулю не превышающие 1000. Формат результата Если прямые не пересекаются, выведите одно число 0. Если прямые совпадают, выведите 2. Если прямые пересекаются ровно в одной точке, то выведите сначала число 1, а затем два вещественных числа - координаты точки пересечения с точностью до шести знаков после запятой. Примеры Входные данные 1 1 2 2 1 10 2 11 Результат работы 0 Входные данные 0 0 1 1 1 0 -1 2 Результат работы 1 0.5 0.5
1. При вводе числа 15 программа выведет число 4.
2. Наименьшие значения A, при которых программа выведет верный ответ, равны 2 и 3.
3. В программе допущена типичная для начинающих программистов ошибка «смещения кадра»: значение переменной K, необходимое при первом выполнении цикла, присваивается до начала цикла, а значение для следующего оборота цикла вычисляется в конце предыдущего оборота. В результате, при завершении цикла K имеет значение больше, чем нужно. Вторая ошибка – неверный шаг изменения K. «Идеальная» программа решения этой задачи должна выглядеть так (приведён пример на языке Бейсик):
DIM A,S,K AS INTEGER
INPUT A
S = 0
K = −1
WHILE S <= A
K = K + 2
S = S + K*(K+1)
WEND
PRINT K
END
Но по условиям задания менять местами строки нельзя, их можно только исправлять. Поэтому, кроме исправления шага, приходится корректировать значение K при выводе. Пример исправления для языка Паскаль:
Первая ошибка:
k := k+1;
Исправленная строка:
k := k+2
Вторая ошибка:
writeln(k)
Исправленная строка:
writeln(k-2)
В программах на других языках ошибочные строки и их исправления аналогичны.
Незначительной опиской, не влияющей на оценку, следует считать отсутствие знаков и служебных слов после содержательной части исправления.