Другие языки программирования и технологии

Задача про количество четных цифр. Скажите, что неправильно? Язык Си.

Вычислить количество четных цифр заданного натурального числа.
Пример входного файла: 12345
Пример выходного файла: 2

#include
int main()
{
int n,s=0,k=1;
scanf("%d", &n);
while(n>0)
{
if((n%10)%2==0) s=s+n%10;
n=n/10;
k++;
}
printf("%d",k);
return 0;
}
0 четное число. Везде в предыдущих вариантах будет косяк. соотв при вводе 0.

Если подправлять предыдущий, то н-р так

#include < stdio.h >

int main() {
int n;
scanf("%d", &n);
int k=n==0;
while(n) {
k += !(n & 1);
n/=10;
}
printf("%d",k);
}

Ну и шутки ради свой вариант

#include < stdio.h >

int main() {
int n,k; scanf("%d", &n);
for(k=n==0;n;k+=!(n&1),n/=10);
printf("%d",k);
}
АБ
Александр Бирюков
84 764
Лучший ответ
Марат Исаканов что именно подправить?
// позволяет работать 1023-х значными числами без знака
#include <stdio.h>
#include <ctype.h>
#define BUFFER 1024
#define MAX_SIZE BUFFER - 1
int main(void) {
char digits[BUFFER] = { 0 };
size_t count = 0u;
size_t i;
printf("Number: ");
while (!scanf_s("%s", digits, MAX_SIZE)) {
while (getchar() != '\n') { ; }
printf("Number: ");
}
for (i = 0u; digits[i]; ++i) {
if (isdigit(digits[i])) {
if (~digits[i] & 1) {
++count;
}
}
}
printf("Result: %u\n", count);
getchar();
getchar();
return 0;
}
int main()
{
int n,k=0;
scanf("%d", &n);
while(n)
{
k = k + !(n & 1);
n=n/10;
}
printf("%d",k);
return 0;
}
#include
int main() {
int number = 0;
scanf("%d", &number);

int counter = 0;
while (number > 0) {
int k = number % 10;
number /= 10;

if (k % 2 == 0) ++counter;
}

printf("%d", counter);
return 0;
}