![]() |
|
Модераторы: bsa |
![]()
|
|
| antigrom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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(); } //--------------------------------------------------------------------------- |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
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 |
|||
|
||||
| mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 19 Всего: 306 |
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
|
|||
|
||||
| antigrom |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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; } |
|||
|
||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Переборщил с std:: по вкусу
вот это
должно быть таким
|
||||
|
|||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |