Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 2
Регистрация: 16.02.2011
Сообщений: 64
1

Найдите из этого текста слово из трех букв и выведите на экран

02.05.2011, 15:08. Показов 1004. Ответов 7
Метки нет (Все метки)

здравствуйте дорогие форумчане. нужна помощь.
Дан текст который заканчивается на точку. Найдите из этого текста слово из трех букв и выведите на экран.
з.Ы. заранее благодарен.
з.ы.ы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// моя идея
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define n 20
 void main()
 {
   char aa,a[n];int i;
   printf("Enter the text: ");
   gets(a);
     for (i=0;i<n;++i){
     for (int k=0;k<n;++k){
      if (a[i]==' ')
       i=k;
      if (a[k-1]-a[k]==3)
       printf("3 simbol: %s",a[k]);
             }
   }
 
 
 }
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2011, 15:08
Ответы с готовыми решениями:

Найдите в строке самое длинное слово, выведите на экран это слово и его длину
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово...

Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите на экран это слово и его длину.
Помогите пожалуйста с задачей... Дана строка, содержащая пробелы. Найдите в ней самое длинное...

Введите слово. Выведите на экран коды его букв
Написана программа выводит буквы и выводит порядок букв в слове, а вот как вывести коды этих букв...

Дана строка текста в которой определить количество слов в строке и выведите на экран каждое нечётное слово
дана строка текста в которой определить количество слов в строке и выведите на экран каждое...

7
Эксперт С++
1066 / 845 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
02.05.2011, 15:15 2
В циклах никак не проверяется окончание текста - точка.
0
2 / 2 / 2
Регистрация: 16.02.2011
Сообщений: 64
02.05.2011, 15:20  [ТС] 3
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
В циклах никак не проверяется окончание текста - точка.
как это мне реализовать???
0
4855 / 3276 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
03.05.2011, 11:03 4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
#define N 20
 
int main(void)
{
    char a[N];
    int i, k;
   
    printf("Enter the text: ");
    fflush(stdout);
    gets(a);
    for (i = 0; i < N; ++i) {
        for (k = 0; k < N; ++k) {
            if (a[i] == ' ')
                i = k;
            if (a[k - 1] - a[k] == 3)
                printf("3 simbol: %c", a[k]);
        }
    }
    return 0;
}
ошибки исправил, привёл к сишному виду

алгоритм неправильный
нужно сделать состояния "внутри слова", "снаружи слова"
когда "внутри слова", считать символы
когда "снаружи слова", обнулять счётчик
если при обнулении он равен трём, выводить слово
0
2 / 2 / 2
Регистрация: 16.02.2011
Сообщений: 64
03.05.2011, 22:17  [ТС] 5
Цитата Сообщение от accept Посмотреть сообщение
C
1
2
   fflush(stdout);
    printf("3 simbol: %c", a[k]);
fflush(stdout); -- что делает эта функция??? можете объяснить по подробнее...
printf("3 simbol: %c", a[k]);--как я понял спецификатор означает сhar?
0
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
03.05.2011, 22:22 6
C
1
 fflush(stdout);
очищает поток вывода, или буфер вывода.
встречал по разному пишут.
есть еще stdin собственно.

спецификатор означает сhar
угу, %c - character - символ
0
4855 / 3276 / 467
Регистрация: 10.12.2008
Сообщений: 10,570
04.05.2011, 01:40 7
Цитата Сообщение от GmV_ScoRp
fflush(stdout); -- что делает эта функция???
вывод буферизируется, то есть сначала символы пишутся в скрытый символьный массив, а уже потом, при заполнении или при встрече '\n', содержимое этого буфера выводится на экран

из-за того, что там нет перевода строки, этот буфер не выталкивается, поэтому, если мы хотим увидеть вывод ровно там, где его ожидаем, мы выталкиваем буфер на экран с помощью fflush()

ты скажешь: "но ведь на экран всё выводится"
а я отвечу: "не всегда, так как не обязано"

Цитата Сообщение от resource2008
есть еще stdin собственно
существует стандарт языка, и в нём сказано:
далее описание функции fflush() из черновика стандарта C89
Код
4.9.5.2 The fflush function

Synopsis

         #include <stdio.h>
         int fflush(FILE *stream);

Description

   If stream points to an output stream or an update stream in which
the most recent operation was output, the fflush function causes any
unwritten data for that stream to be delivered to the host environment
to be written to the file; otherwise, the behavior is undefined.

   If stream is a null pointer, the fflush function performs this
flushing action on all streams for which the behavior is defined
above.

Returns

   The fflush function returns EOF if a write error occurs, otherwise zero.  

Forward references: the ungetc function ($4.9.7.11).
так вот stdin - это поток ввода
fflush(stdin) можно делать на многих крупных компиляторах, так как они предоставляют такую возможность
но поведение fflush(stdin), если даже и реализовано, может различаться (не обязано быть одинаковым), следовательно можно получить какой-нибудь неожиданный побочный эффект
0
2 / 2 / 2
Регистрация: 16.02.2011
Сообщений: 64
04.05.2011, 17:40  [ТС] 8
Цитата Сообщение от accept Посмотреть сообщение
вывод буферизируется, то есть сначала символы пишутся в скрытый символьный массив, а уже потом, при заполнении или при встрече '\n', содержимое этого буфера выводится на экран

из-за того, что там нет перевода строки, этот буфер не выталкивается, поэтому, если мы хотим увидеть вывод ровно там, где его ожидаем, мы выталкиваем буфер на экран с помощью fflush()

ты скажешь: "но ведь на экран всё выводится"
а я отвечу: "не всегда, так как не обязано"


существует стандарт языка, и в нём сказано:
далее описание функции fflush() из черновика стандарта C89
Код
4.9.5.2 The fflush function

Synopsis

         #include <stdio.h>
         int fflush(FILE *stream);

Description

   If stream points to an output stream or an update stream in which
the most recent operation was output, the fflush function causes any
unwritten data for that stream to be delivered to the host environment
to be written to the file; otherwise, the behavior is undefined.

   If stream is a null pointer, the fflush function performs this
flushing action on all streams for which the behavior is defined
above.

Returns

   The fflush function returns EOF if a write error occurs, otherwise zero.  

Forward references: the ungetc function ($4.9.7.11).
так вот stdin - это поток ввода
fflush(stdin) можно делать на многих крупных компиляторах, так как они предоставляют такую возможность
но поведение fflush(stdin), если даже и реализовано, может различаться (не обязано быть одинаковым), следовательно можно получить какой-нибудь неожиданный побочный эффект
ok, spasibo
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.05.2011, 17:40

Найдите самое длинное слово, выведите это слово и его длину
Дана,строка содержащая пробелы Найдите самое длинное слово вывкдите это слово и его длину Если их...

Найдите в строке самое длинное слово, выведите это слово и его длину
Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите это слово и его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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