Вычислить характеристики последовательности, вводимой с клавиатуры - C (СИ)
Формулировка задачи:
Вычислить указанные в варианте характеристики последовательности, вводимой с клавиатуры (без использования массивов и промежуточных файлов для хранения всей последовательности), учитывая, что элементы последовательности могут быть введены только один раз.
ПРИМЕЧАНИЯ:
В программе обязательно применение функций с передаваемыми параметрами. Не допускается использование массивов.
Рекомендуется использовать операции целочисленной арифметики. Если в последовательности отсутствует искомый элемент, то об этом следует вывести сообщение.
Вычислить общую сумму всех четных цифр во всех нечетных элементах.
Пример: 14 123 52 3241 5147 80 900 результат: 2+2+4+4=12.
Решение задачи: «Вычислить характеристики последовательности, вводимой с клавиатуры»
textual
Листинг программы
#include<stdio.h>
int sum(char* argv) {
int sum = 0;
while (*argv) {
if ( !(*argv % 2) )
sum += *argv - '0';
++argv;
}
return sum;
}
int main(int argc, char* argv[]) {
int i = 1, s = 0;
while (argv[i]) {
if ( !(i % 2))
s += sum (argv[i]);
++i;
}
fprintf (stdout, "%i\n", s);
return 0;
}
Объяснение кода листинга программы
- В функции
sumпроисходит подсчет суммы всех четных элементов введенной последовательности. - В функции
mainпроисходит считывание последовательности из аргументов командной строки. - Переменная
iинициализируется значением 1, а переменнаяs- нулем. - В цикле происходит проверка каждого элемента последовательности на четность.
- Если элемент четный, то его значение (в десятичной системе счисления) добавляется к переменной
s. - Результат выводится на экран.