Дано целое число. Сосчитать количество четных цифр в нем - C (СИ)
Формулировка задачи:
Доброй ночи! Задача: Дано целое число. Сосчитать количество четных цифр в нем. (язык си)
Задачу как решать понятно то) Я пишу под visual studio, просто хотелось бы узнать как такое задание должно выглядеть на чисто си, чтобы допустим это задание работало на других компиляторах без проблем (GCC, etc.)...
Просто может setlocale(LC_ALL, "Rus"); и system("PAUSE"); только в visual'e?
Код:
#include <stdio.h> #include <stdlib.h> #include <locale.h> int main(int argc, char *argv[]) { setlocale(LC_ALL, "Rus"); int n,count; count = 0; printf("Введите целое число: "); scanf_s("%d", &n); n = abs(n); while (n > 0) { if ((n % 10) % 2 == 0) count++; n /= 10; } printf("Количество четных цифр в заданном целом числе = "); printf("%d\n",count); system("PAUSE"); return 0; }
Решение задачи: «Дано целое число. Сосчитать количество четных цифр в нем»
textual
Листинг программы
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int counter = 0; do { if (n % 2 == 0) counter++; } while ((n /= 10) != 0); printf("%d\n", counter); return 0; }
Объяснение кода листинга программы
В этом коде:
- В начале объявляется переменная
n
типаint
, которая будет использоваться для хранения введенного числа. - Затем с помощью функции
scanf
вn
считывается целое число. - Далее объявляется переменная
counter
типаint
, которая будет использоваться для подсчета количества четных цифр. - Инициализируем
counter
нулем. - Затем используется цикл
do-while
, который будет выполняться до тех пор, покаn
не станет равным нулю. - Внутри цикла проверяется, является ли остаток от деления
n
на 2 равным нулю. Если это так, то значениеcounter
увеличивается на единицу. - После каждой итерации цикла значение
n
делится на 10, чтобы убрать последнюю цифру числа. - После окончания цикла выводится значение
counter
, которое представляет собой количество четных цифр в числе. - В конце программы возвращается ноль, чтобы указать, что программа успешно завершилась.