@im_noob

Где у меня ошибка при выводе порядковых номеров?

Задание: Ввести произвольную последовательность символов. Определить в заданной последовательности количество символов, которые являются цифровыми и имеют четные порядковые номера.
Ошибка: У меня не выводит порядковые четные номера

Код:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
	const char enter = '\r';
	unsigned int s = 0, kol = 0;
	char c;
	printf("Input text:");
	do
	{

		c = _getche();
		if (c % 2 == 0) kol++;

		if (isdigit(c))s++;
	
	} while (c != enter);


	printf("poryadkovie=%u", kol);
	printf("\nDigits=%u", s);
	_getch();
	return 0;
}
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 2
wataru
@wataru
Разработчик на С++, гуглер, экс-олимпиадник.
Вы проверяете код символа на четность, а надо проверять его порядковый номер. Для этого заведите счетчик, который изначально равен нулю и увеличивается на 1 после каждого прочтенного символа. Проверяйте на четность этот счетчик.

И еще, похоже вы отдельно считаете цифры и четные номера, а в задаче похоже надо считать сколько символов удовелтворяют обоим условиям. Для этого надо воспользоваться логической операцией И (&&) в условии if.
Ответ написан
zagayevskiy
@zagayevskiy
Android developer at Yandex
являются цифровыми и имеют четные порядковые номера

У тебя две ошибки.
Во-первых, условия должны выполняться одновременно.
Во-вторых ты проверяешь на чётность не порядковые номера, а сами чары. Проверяй порядковые номера.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы