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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2013, 23:09   #1
vitaxa3581
Пользователь
 
Регистрация: 14.12.2012
Сообщений: 19
По умолчанию каких слов в тексте больше

Ребята наставьте на путь истинный. Задача звучит так: "Определить каких слов в тексте больше состоящих только из букв или только из цифр"

исправьте что не так, пожалуйста)))


Код:
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#define N 80
char tex[N];

int 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();
}

Последний раз редактировалось Stilet; 17.01.2013 в 23:34.
vitaxa3581 вне форума Ответить с цитированием
Старый 18.01.2013, 16:44   #2
shadowmaker
Пользователь
 
Регистрация: 21.07.2009
Сообщений: 21
По умолчанию

Вы считаете количество символов в целом, а не
Цитата:
каких слов в тексте больше состоящих только из букв или только из цифр
Код:
#include <iostream>
#include <cstring>


using namespace std;

char* substr(char*, int, int);
bool ischar(char* str);
bool isnum(char* str);

int main()
{
    char* s = new char[50];
    cin.getline(s,50);
    cout<<endl;
    int bcount = 0;
    int ccount = 0;
    int position = 0;
    int i = 0;
    for (i = 0; i < strlen(s); i++)
        if ((s[i]==' ') || (i == strlen(s)-1)) 
         //набиваем строку на подстроки, состоящие из слов
        {
            char* sss = substr(s, position, i);
            if (ischar(sss)) bcount++;
            if (isnum(sss)) ccount++;
            position = i+1;
        }
    cout<<"char only: "<<bcount<<endl;
    cout<<"num only: "<<ccount<<endl;
    return 0;
}

bool ischar(char* str) // состоит ли строка только из букв
{
    for (int i = 0; i<strlen(str); i++)
        if ((str[i]>='0') && (str[i]<='9'))
            return false;
    return true;
}

bool isnum(char* str) // состоит ли строка только из цифр
{
    for (int i = 0; i<strlen(str); i++)
        if ((str[i]>='A') && (str[i]<='z'))
            return false;
    return true;
}
//строки, состоящие и из цифр, и из букв игнорируются

char* substr(char* str, int sv, int ev) //функция выделяет подстроку из строки
{
    char* sp = str + sv;
    char* ss = new char[20];
    strncpy(ss, sp, ev - sv);
    return ss;
}
я это задание решил так... НО я сам новичек, код не без корявостей
shadowmaker вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить каких чисел в целочисленной последовательности больше:четных или кратных 3 naty7773 Помощь студентам 4 18.12.2012 12:01
определить каких букв больше в этом тексте Aimet Паскаль, Turbo Pascal, PascalABC.NET 2 16.06.2011 22:22
количество слов в тексте almareta Помощь студентам 3 01.04.2010 20:59
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных. Михей91 Общие вопросы C/C++ 1 07.01.2010 16:57
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19