Определить, каких слов в тексте больше, состоящих только из букв или только из цифр - C (СИ)
Формулировка задачи:
Здравствуйте. Помогите пожалуйста решить програмку.
Я тут написал ее, но не правильно, я тут общее кол-во букв и цифр посчитал .а мне нужно слова... (в условии, не нужно предполагать, что слово может быть смешанным)
вот, то что я намудрил, неправильное....
Определить, каких слов в тексте больше, состоящих только из букв или только из цифр.
#include<stdio.h>
#include<conio.h>
#define N 80
char tex[N];
void main()
{ clrscr();
int i;
int cif;
int k;
int j;
int buk;
char kcif;//kol-vo cifr
char kbuk;//kol-vo bukv
printf("\n Vvedite stroku:\n");
gets(tex);
k=0;
for (i=0; i<N; i++)
{
for (kcif='0'; kcif<='9'; kcif++)
{
if (tex[i]==kcif) k+=1;
}
}
printf("cifr %i",k);
//
//
//
//
//
j=0;
for (i=0; i<N; i++)
{
for (kbuk='A'; kbuk<='Z'; kbuk++)
{
if (tex[i]==kbuk) j+=1;
}
}
for (i=0; i<N; i++)
{
for (kbuk='a'; kbuk<='z'; kbuk++)
{
if (tex[i]==kbuk) j+=1;
}
}
printf("\t bukv %i",j);
if (k>j) printf("\n\n\nCIFR BOL`SHE\n"); else if (k<j)
printf("\n\n\nBUKV BOL`SHE\n"); else
printf("\n\n\nCIFR i BUKV ODINAKOVOE KOL-VO\n");
getch();
}Решение задачи: «Определить, каких слов в тексте больше, состоящих только из букв или только из цифр»
textual
Листинг программы
#include<stdio.h>
#include<conio.h>
#define N 100
void main()
{
clrscr();
char text[N];
size_t i = 0;
size_t wdigit = 0;
size_t walpha = 0;
printf("\n Enter string:\n");
gets(text);
while (text[i])
{
if(isalpha(text[i])&&!isalnum(text[i + 1])) walpha++;
if(isdigit(text[i])&&!isalnum(text[i + 1])) wdigit++;
i++;
}
printf("\n\Words with characters %d ",walpha);
if(walpha > wdigit) printf(" - More of these words");
printf("\n\Words with digits %d ",wdigit);
if(walpha < wdigit) printf(" - More of these words");
getch();
}
Объяснение кода листинга программы
В этом коде определенная задача реализуется с помощью языка программирования C. Вот список действий, выполняемых в коде:
- Включаются необходимые заголовочные файлы.
- Устанавливается размер массива text на 100 символов.
- В функции main() очищается экран и запрашивается ввод строки.
- Введенная строка сохраняется в массиве text.
- Инициализируются счетчики walpha и wdigit, которые отслеживают количество слов, содержащих только буквы и только цифры соответственно.
- Происходит проход по каждому символу введенной строки.
- Если текущий символ является буквой и следующий символ не является буквой или цифрой, то увеличивается счетчик walpha.
- Если текущий символ является цифрой и следующий символ не является буквой или цифрой, то увеличивается счетчик wdigit.
- После прохода по всем символам выводится количество слов, содержащих только буквы, и количество слов, содержащих только цифры.
- Выводится сообщение, указывающее, каких слов больше.
- Программа ожидает нажатия клавиши для завершения работы.