![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 15.12.2010
Сообщений: 3
|
![]()
Дана строка текста, в которой слова разделены пробелами и запятыми. Необходимо:
а) определить количество слов в строке, заканчивающихся на гласную букву; б) найти среднюю длину слов в строке и вывести все слова, имеющие такую длину, или сообщение "Слов длиной n символов в строке нет"; в) вывести каждое пятое слово. Первые два задания я сделал, но 3 не получается. помогите. Найдите ошибки пожалуйста. #include<stdio.h> #include<iostream.h> #include<math.h> #include<string.h> void main () { int w,q,h,c,k,j,n; char s[]="So she was considering in her own mind, as well as she could, for the hot day made her feel very sleepy and stupid, whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her."; char s2[20][10]; w=0; c=0; h=0; n=0; k=0; j=0; for(q=0;q<300;q++) { if((s[q]==' ')&&((s[q-1]=='a')||(s[q-1]=='e')||(s[q-1]=='y')||(s[q-1]=='u')||(s[q-1]=='i')||(s[q-1]=='o'))) w++; } printf("V stroke:\n"); puts(s); printf("%3i",w); printf(" slov zakanchivayushchihsya na glasnuyu bukvu\n"); for (q=0;q<300;q++) { if(s[q]!='\0') h++; } for (q=0;q<h;q++) { if ((s[q]!=' ')&&(s[q]!=',')&&(s[q]!='.')) {k++;} if (s[q]==' ') n++; c=k/(n+1); if ((s[5]==' ')||(s[q]==' ')&&((s[q+5]==' ')||(s[q+5]==',')||(s[q+5]=='.'))) cout<<s[q]<< s[q+1] << s[q+2] << s[q+3] << s[q+4]; } printf("%3i",k); printf("%2i", n);// вот до этого всё работает. for (q=0;q<h;q++) { if ((s[q]!=' ') && (s[q]!='.')) s2[c][j++]=s[q++]; else c++; cout<<c; } for (q=0;q<c;q++) { if (fmod(c,5)==0) cout<<s2[c][j]; } } |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 04.05.2010
Сообщений: 495
|
![]()
Переменные c,j не забывай инициализировать. И в конце каждого слова нулевой символ, чтобы cout понял где конец слова.
Код:
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948 |
![]() |
![]() |
![]() |
#3 |
Регистрация: 15.12.2010
Сообщений: 3
|
![]()
Спасибо, но у меня при выводе с выдают числа от 1 до 42. А надо вывести каждое пятое слово, где я пытаюсь это сделать при выводе s2[c].
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 15.12.2010
Сообщений: 3
|
![]()
теперь у меня выводит слова со 2-го слова, но каждое пятое. И ставит много ненужных символов перед каждым словом. Подскажите что делать.
for (q=0;q<h;q++) { if ((s[q]!=' ') && (s[q]!='.')) s2[c][j++]=s[q]; else {s2[c++][j]=0;j=0;} } for (c=0;c<60;c++) { for(j=0;j<10;j++) { if (fmod(c,5)==0) cout<<s2[c][j]; } } } Последний раз редактировалось ЩАС; 27.12.2010 в 23:50. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 04.05.2010
Сообщений: 495
|
![]()
На.. разбирайся
Код:
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948 |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, | Шпунюся | Помощь студентам | 1 | 16.12.2010 21:02 |
Создание пустой строки и копирование в неё содержимое предыдущей строки | Gvaridos | Microsoft Office Excel | 2 | 29.10.2010 13:33 |
Дбавление новой строки, после строки с подходящими параметрами | RailOS | Microsoft Office Excel | 5 | 18.08.2010 10:12 |
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. | Александе еть я | Общие вопросы C/C++ | 5 | 13.04.2010 20:54 |
Перенести символа с начала строки в место перед запятой этой же строки. | Zhiltsov | Microsoft Office Excel | 4 | 05.06.2009 13:10 |