Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Убрать в каждом слове после запятой до состых 
:(
    Опции темы
antigrom
Дата 3.12.2008, 05:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.12.2008

Репутация: нет
Всего: нет



 Дана строка символов. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелы внутри себя, будем называть словами. Удалить из каждой группы идущих подряд более двух цифр, которой предшествует точка, все цифры начиная с третьей (например, 5+0.1234-98.54+123.4 преобразуется в 5+0.12-98.54+123.4).

Писать надо в буилдере Консол Визард

Я сделал так чтобы прога убирала все после третьей цифры в последнем введеном слове...а дальше ну хоть убей не могу решить и все ... 

1)

#pragma hdrstop
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------

#pragma argsused
int main()
{
char a_string[100],b_string[100],word[40]="";
cout<<"imput the stging:"<<endl;
gets(a_string);
int j=0;
int len=strlen(a_string);
for(int i=0;i<len;i++)
 {
 if((a_string[i-3]!=',')&&(i!=len))
  word[j++]=a_string[i];
  else
   {
    cout<<word;
    j=0;
   }
 }
getch();
}


2)тут я пытался проверить на числа введеные слова и мне надо сделать так что прога при проверке после запятой убирала все символы после 3 цифры... подмогните......очь прошу...


#pragma hdrstop
#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
//---------------------------------------------------------------------------

#pragma argsused
int main()
{
char a_string[100],word[40]="";
cout<<"imput the stging:"<<endl;
gets(a_string);
int j=0;
int len=strlen(a_string);
for(int i=0;i<len;i++)
 {
 if (a_string[len]=0||1||2||3||4||5||6||7||8||9)
 {
   if(a_string[i]!=',')
   {
   if ((a_string[i+2]=='0'||'1'||'2'||'3'||'4'||'5'||'6'||'7'||'8'||'9')&&(i!=len))
     word[j++]=a_string[i];
   else


    j=0;

   }
 }
  cout<<word;
 }
getch();
}



//---------------------------------------------------------------------------
PM MAIL   Вверх
mes
Дата 3.12.2008, 06:02 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(antigrom @  3.12.2008,  05:20 Найти цитируемый пост)
if (a_string[len]=0||1||2||3||4||5||6||7||8||9)

1. == a не =
2. if (a_string[len]=='0' || a_string[len]=='1' ...  ) 
или
   if (a_string[len]>='0' && a_string[len]<='9 )


Это сообщение отредактировал(а) mes - 3.12.2008, 06:03


--------------------
PM MAIL WWW   Вверх
mrbrooks
Дата 3.12.2008, 08:51 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 19
Всего: 306



 smile студенты поперли. чувствуется что сессия на носу. гы. 
PM MAIL   Вверх
xvr
Дата 3.12.2008, 10:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Код


enum State {
 S_Start,
 S_Count,
 S_Block
};

int main()
{
  char ch;
  int cnt=0;
  State state=S_Start;

  while(cin >> ch)
   {
     switch(state)
      {
        case S_Start: if (ch==',' || ch=='.') {state=S_Count; cnt=0;} break;
        case S_Count: if (!isdigit(ch)) {state=S_Start; break;}
                      if (cnt<3) ++cnt; else state=S_Block;
                      break;
        case S_Block: if (!isdigit(ch)) {state=S_Start; break;}
                      continue;
      }
     cout << ch;
   }

  return 0;
}

include'ы и std:: добавить по вкусу

PM MAIL   Вверх
antigrom
Дата 3.12.2008, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 2.12.2008

Репутация: нет
Всего: нет



чего не получается
прога циклится и выводит постоянно первое число 
если не трудно объясните что и как делать
а лучше если коментарий оставите что делает каждый оператор...


#include <iostream>
#include <conio.h>
#include <locale>
#include <ctype.h>
enum State
{
 S_Start,
 S_Count,
 S_Block
};

int main()
{
  char ch;
  int cnt=0;
  State state=S_Start;
  std::cin>>ch;
 while(ch)
   {
     switch(state)
      {
        case S_Start: if (ch==',' || ch=='.') {state=S_Count; cnt=0;} break;
        case S_Count: if (!isdigit(ch)) {state=S_Start; break;}
                      if (cnt<3) ++cnt; else state=S_Block;
                      break;
        case S_Block: if (!isdigit(ch)) {state=S_Start; break;}
                      continue;
      }
    std:: cout << ch;
   }

  return 0;
}
PM MAIL   Вверх
xvr
Дата 3.12.2008, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Переборщил с std:: по вкусу  smile 
вот это
Код

 std::cin>>ch;
 while(ch)

должно быть таким
Код

 while(std::cin>>ch)


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.