Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2021, 10:51   #1
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию С определить количество символов последовательности являющимися цифрами и имеющими четные порядковые номера

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

У меня не выводит порядковые четные номера
Код:
 
#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 (isdigit(c))s++;  
		if (c % 2 == 0) kol++;
	} while (c != enter);
	
	
	printf("poryadkovie=%u", kol);
	printf("\nDigits=%u", s);
	_getch();
	return 0;
}
Evgeny_L вне форума Ответить с цитированием
Старый 21.04.2021, 11:22   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,708
По умолчанию

Что за смешная попытка... Думаю, нужно просто ввести строку посредством gets и затем посимвольно анализировать на заданное условие. Требуется чётность не самого символа, а его порядкового номера в строке. что-то вроде
Код:
 if ( (str[i] >= '0') and  (str[i] <= '9') and ((i %2) == 0) )....
Можно, конечно, и через
Код:
c = _getche();
но тогда нужно завести счётчик и уж его терзать на предмет чётности.

Код:
		if ((i % 2) == 0) kol++; i++ ;

Последний раз редактировалось digitalis; 21.04.2021 в 11:27.
digitalis вне форума Ответить с цитированием
Старый 21.04.2021, 11:53   #3
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Что за смешная попытка... Думаю, нужно просто ввести строку посредством gets и затем посимвольно анализировать на заданное условие. Требуется чётность не самого символа, а его порядкового номера в строке. что-то вроде
Код:
 if ( (str[i] >= '0') and  (str[i] <= '9') and ((i %2) == 0) )....
Я совсем новичок в С, и я не понял даже само задание... А как тогда записать правильно? Если через
Код:
 if ( (str[i] >= '0') and  (str[i] <= '9') and ((i %2) == 0) )
Evgeny_L вне форума Ответить с цитированием
Старый 21.04.2021, 12:01   #4
Evgeny_L
Пользователь
 
Регистрация: 27.10.2018
Сообщений: 31
По умолчанию

Так должно быть?
Код:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>


main()
{
	const char enter = '\r';
	unsigned int s = 0, kol=0,i=0;
	char c;
	printf("Input text:");
	do
	{
		c = _getche(); 
		if ((i % 2) == 0) {
			kol++;
		}

		if (isdigit(c))s++; 
	} while (c != enter);
	printf("\nDigits=%u", s);
	printf("\nporyad=%u", kol);
	_getch();
	return 0;
}
Evgeny_L вне форума Ответить с цитированием
Старый 21.04.2021, 13:17   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,708
По умолчанию

Код:
#include <stdio.h>
#include <conio.h>
#include <ctype.h>
main()
{
	const char enter = '\r';
	unsigned int i = 0, s=0;
	char c;
	printf("Input text:");
	do
	{
		c = _getche();  
		if ( (isdigit(c)) && (i % 2 == 0) ) s++;  
		i++;
	} while (c != enter);

	printf("\nDigits in even places =%u", s);
	_getch();
	return 0;
}
Номера позиций будем считать с 0.
Я на ++ не писал вообще, так что сорян в случае чего А почему printf, а не cout, раз уж С++ ? Не уверен, что оно правильно поймёт enter. Надо бы (c != '\n')
and в моём #2 - это отрыжка Дельфи

Последний раз редактировалось digitalis; 21.04.2021 в 13:29.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В последовательности символов, вводимых с клавиатуры, подсчитать количество пар символов '*'. Признак завершения ввода: третий символ '+' SayLycky Паскаль, Turbo Pascal, PascalABC.NET 1 26.03.2020 20:59
Дан двумерный массив [4..7]. Hайти количество и сумму квадpатов положительных элементов массива, имеющих четные номера в строках Oraner Паскаль, Turbo Pascal, PascalABC.NET 3 04.11.2012 21:22
Найти количество членов последовательности b1,b2..bn, которые имеют четные порядковые номера и являются нечетными числами (Паскаль Vetal_1715 Помощь студентам 3 23.05.2012 13:20
В заданной строке определить номера позиций с шестнадцатиричными цифрами (С/С++) Ветал_Ракета Помощь студентам 2 30.09.2011 22:37
чисел имеющие четные порядковые номера и являющиеся нечетными eva-2030 Общие вопросы Delphi 2 22.01.2011 21:35