Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) метод рунге-кутты-мерсона http://www.cyberforum.ru/c-beginners/thread86606.html
нужно написать программу для решения систем из n дифф уравнений методом рунге-кутты-мерсона(он же пятиэтапный метод рунге кутта 4 порядка). вот кусок кода,который считает для одного...
C (СИ) Выбрать все строки из файла, содержащие искомую подстроку, и вывести их на стандартный вывод задом наперед
Здравствуйте. Мне нужно было сделать программу-поисковик по файлу. Задача была следующая. Есть текстовый файл неопределенной длины. Пользователь задает искомую подстроку. Нужно выбрать все строки из...
C (СИ) массив в СИ ( СОРТИРОВКА)
Привет. Сортирую массив так, чтобы сначала шли отрицательные значения, а потом положительные, но, видимо, что-то не так, раз в конце повторяется одно и то же число. И где ощибка? int main(int argc,...
C (СИ) mas+1 - ??? Вот собственно код при обычном boo(mas); - выводит 1234 а при boo(mas+1); - выводит 234 . Почему? Заранее спасибо. int boo(int mas) { int i=0; do{ printf("%d",mas); i++; ... http://www.cyberforum.ru/c-beginners/thread86377.html
C (СИ) Прокомментировать код http://www.cyberforum.ru/c-beginners/thread86299.html
#include <stdio.h> #include <conio.h> int a; int N; float x; void swapFunc(int i1,int i2) { for(int i=0;i<=N;i++)
CИ - Одномерный числовой массив - сортировка, произведение элементов C (СИ)
Здравствуйте. Помогите пожалуйста исправить код программы, которая должна В одномерном массиве, который состоит из n элементов: 1. Рассчитать количесвто элементов больших некоего числа с 2....
в чём ошибка C (СИ)
с использованием оператора выбора написать програму нахождения длины отрезка в метрах.вывод и ввод в цветном экране они должны быть разного цвета . #include<stdio.h> #include<conio.h> void main();...
C (СИ) Необходимо избавиться от оператора goto #include <CONIO.H> #include <STDIO.H> #include <CTYPE.H> #define STARTX 10 #define STARTY 2 int KnightX, KnightY; char *REPEATMSG = "Повторить"; http://www.cyberforum.ru/c-beginners/thread86152.html
C (СИ) Перевести метры в миллиметры http://www.cyberforum.ru/c-beginners/thread86121.html
Помогите пожалуйста с задачей. Русские неметрические еденицы длины.1 верста=500 саженей, 1 сажень=3 аршина, 1=аршин 16 вершков, 1 вершок=34,45 мм. Длина некоторого отрезка составляет p метров....
C (СИ) строки Данная программа должна выводить сообщение " от невроворот ". Но в чем ошибка?! #include <string.h> #include <stdio.h> int main(void) { char *p; http://www.cyberforum.ru/c-beginners/thread86085.html
xenocide
0 / 0 / 1
Регистрация: 06.01.2010
Сообщений: 7
17.01.2010, 22:42  [ТС] 0

Считать количество слов в каждом предложении и вывести на экран самое длинное предложение

17.01.2010, 22:42. Просмотров 819. Ответов 2
Метки (Все метки)

Ответ

Спасибо
Но все-таки, может еще кто чего подскажет?

Добавлено через 12 часов 45 минут
Спасибо за внимание. Разобралась сама. Решение с необходимыми объясняющими комментариями прилагаю на всякий случай
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
int main()
{
        char *s = (char*) malloc(255 * sizeof(char));     //Выделение памяти под текстовый массив
        int start=0,max=0,i,t;
 
        printf("Vvedite text: ");
        gets(s);
 
        for (i=0; i<strlen(s)-1; i++)
                if (s[i] == '.' && s[i+1] == ' ')      //Поиск сочетания точек с пробелами, т.е. поиск разделителей предложений, где i - номер точки, i+1 - номер пробела
                {
                        for (t=i+1; t<strlen(s)-1; t++)      //Перебор элементов следующих за точкой начиная с пробела (т.е. от начала каждого предложения) 
                                s[t]=s[t+1];  //Удалене пробелов между предложениями (присвоение пробелу после точки значения последующего символа и т.д., т.е. сдвиг всех элементов на 1 влево в сторону пробела между предложениями
 
                        s[strlen(s)-1]='\0';  
                }
 
        int old=0;
        for (i=0; i<strlen(s); i++)
        {
                if (s[i]=='.')  // Поиск разделителей предложений, т.е. точек
                {
/*Поиск максимального по длине предложения (i-old - это длина предложения)*/
                        if (i-old>max)          // Сравнение длины предложения с максимумом
                        {
                                max=i-old;     //В случае если длина предложения превышает максимум, присвоение максимуму величины текущего предложения
                                start=old; //Присвоение переменной "старт" номера начального элемента самого длинного предложения
                        }
 
                        int words=1; //Присвоение начального значения = 1 счетчику слов в текущем предложении
 
                        for (t=old; t<i; t++) //Перебор элементов от начала каждого предложения до его конца (т.е. до точки) 
                                if (s[t]==' ') //Поиск пробелов в текущем предложении (т.е. поиск разделителей слов)
                                        words++; //Увеличение счетчика слов на 1 в случае если найден пробел (т.к. пробелов всегда на 1 меньше чем слов, поэтому начальное значение счетчика уже изначально =1);
 
                        printf("Kolichestvo slov v tekush4em predlozhenii: %d\n", words); // Вывод на экран количества слов в текущем предложении
 
                        old=i; //Переход к следующему по порядку предложению
                }
        }
 
        printf("Samoe dlinnoe predlozhenie: ");
        for (i=start; i<start+max; i++)    // Перебор элементов от начала до конца самого длинного предложения (start+max - конечный символ самого длинного предложения)
                printf("%c", s[i]); // Вывод на экран самого длинного предложения
        printf("\n");
 
/*Поиск и удаление из предложений слов с предпоследней гласной*/
        old=0;
        for (i=0; i<strlen(s); i++)   //Перебор всех элементов текста
                if ((s[i]==' ' || s[i]=='.' || i==strlen(s)-1)) //Поиск разделителей слов (пробелов, точек, последнего слова)
                {
                        if ( (s[i-2]=='a' || s[i-2]=='o' || s[i-2]=='e' || s[i-2]=='u' || s[i-2]=='i') ) //В случае если разделитель слов (последнее слово) найдены, проверка не является ли гласной его предпоследняя буква
 
/*Вывод на экран слов с предпоследней гласной*/
 
                        {
                                printf("Tekush4ee slovo s predposlednej glasnoj: ");
                                for (t=old; t<i; t++)   //Перебор элементов от начала до конца каждого слова
                                        printf("%c", s[t]); //Вывод на экран слова   
                                printf("\n");
 
/*Удаление слов с предпоследней гласной*/
                                for (t=old; t<strlen(s)-i+old; t++)   
                                        s[t]=s[t+i-old+1]; //Удаление слов с предпоследней гласной путем сдвига элементов стоки на величину слова с предпоследней гласной (i-old = длина слова) - на место начала слова с предпоследней гласной переносим начало обычного слова 
                                s[strlen(s)-i+old]='\0'; //Конец массива сдвигается на величину убранных слов с предпоследнйе гласной
                        }
 
                        old=i+1; //Переход к следующему слову
                }
 
        printf("Predlozhenie posle ydalenija slov: "); //Вывод на экран текса после удаления требуемых слов
        for (i=0; i<strlen(s); i++)
                printf("%c", s[i]);
 
        return 0;
}


Вернуться к обсуждению:
Считать количество слов в каждом предложении и вывести на экран самое длинное предложение
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2010, 22:42
Готовые ответы и решения:

Найти в каждом предложении самое длинное слово и вывести его
Заданы 2 предложения в файле my.txt. Нужно найти в каждом предложении самое длинное слово и вывести...

Вывести на экран самое длинное предложение
С клавиатуры вводиться текстовая строка.Составить программу которая 1)выводит на экран самое...

Вывести на экран самое длинное предложение
Просьба помочь,и если не трудно немного объяснить,то текстовые рядки даются туго...С клавиатуры...

Необходимо найти в заданном предложении самое длинное слово и вывести на экран
Пожалуйста, помогите найти тут ошибки. Язык -си #include&lt;stdio.h&gt; #include &lt;stdlib.h&gt; int...

Как сделать чтоб в тексте каждое предложение отделялось двумя пробелами и в каждом предложении искалось самое короткое слово
#include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;stdlib.h&gt; #include...

2
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru