0 / 0 / 1
Регистрация: 10.12.2010
Сообщений: 38
1

Найти количество слов, у которых первый и последний символы совпадают между собой.

07.07.2011, 11:05. Показов 3532. Ответов 9
Метки нет (Все метки)

Даны натуральное число n, символы s1,...,sn. Группы символов, разделенные пробелами (одним или несколькими) и не содержащие пробелов внутри себя будем называть словами. Найти количество слов, у которых первый и последний символы совпадают между собой.
помогите найти ошибку в программе:
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
#include <string.h>
#include <stdio.h>
#include <conio.h>
int i,j,n,k,x;
char s[100];
void main()
{
clrscr();
printf("n=");
scanf("%d",&n);
printf("text: ");
for (j=0; j<n; j++)
  {
  scanf("%c",&s[j]);
  }
i=1;
k=0;
while (i<=strlen(s))
 {
 x=i;
 while (s[j]!=' ' && i<=strlen(s)) i++;
 if (s[x]==s[i-1]) k++;
 while (s[j]==' ' && i<=strlen(s)) i++;
 }
printf("kol-vo slov: %d",k);
getch();
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.07.2011, 11:05
Ответы с готовыми решениями:

Найти количество слов, у которых первый и последний символы совпадают между собой
Дан текст. а) Найти количество слов, начинающихся с буквы б; б) Найти количество слов, у которых...

Найти количество слов, у которых первый и последний символы совпадают между собой
Помогите пожалуйста написать программу, никак разобраться не могу(

Символьные строки: найти количество слов, у которых первый и последний символы совпадают между собой
Дана строка из N симво-лов. Группы символов, разделенные пробелами (одним или несколькими) и не ...

Определить количество слов в тексте, у которых первый и последний символы совпадают между собой
программа с использованием текстовых данных, файлов ввода/ вывода Помогите выполнить задание...

9
Каратель
Эксперт С++
6606 / 4025 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
07.07.2011, 11:25 2
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
#include <stdio.h>
#include <string.h>
 
int main()
{
    printf("Enter N: ");
    int n;
    scanf("%d", &n);
    fflush(stdin);
    char str[100];
    printf("Enter symbols: ");
    fgets(str, n, stdin);
    fflush(stdin);
    int i = 0;
    char* ptr = strtok(str, " \t");
    for (; ptr != NULL; ptr = strtok(NULL, " \t"), ++i)
    {
        if(ptr[0] == ptr[strlen(ptr) - 1])
            printf("%s\n", ptr);
    }
    printf("Matched: %d", i);
    getchar();
    return 0;
}
1
0 / 0 / 1
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 16:46  [ТС] 3
Maxwe11
цикл пробелы тоже считает, надо какое нибудь условие еще. может внутри еще цикл?
0
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 18:29 4
Tru_metal, для чего? работает же всё.
0
0 / 0 / 1
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 18:33  [ТС] 5
OstapBender
не совсем.
лишние пробелы после слов считаются за слова.
например вводим строку 100, пишем слова dad bag bib, то посчитается 3 слова, хотя должно быть 2
0
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 18:52 6
Tru_metal, а понял, нужно добавить \n в strtok -> strtok(NULL, " \t\n").
кстате там счетчик немного неверный.
0
0 / 0 / 1
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 18:55  [ТС] 7
OstapBender
про счетчик по подробнее.
0
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 18:58 8
омг, ну ты посмотри
printf("Matched: %d", i); - выводит количество слов вообще.
а тебе нужно количество совпадений.
увеличивай i когда по if проходит условие, ну ясно же.
0
0 / 0 / 1
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 19:02  [ТС] 9
что то вроде такого?
C++
1
2
3
4
 for (; ptr != NULL; ptr = strtok(NULL, " \t\n" )
    {
        if(ptr[0] == ptr[strlen(ptr) - 1]) i++;
    }
0
593 / 531 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 19:07 10
зачем спрашивать если можно проверить?
C
1
2
3
4
5
6
7
8
9
    char* ptr = strtok(str, " \t\n");
    for (; ptr != NULL; ptr = strtok(NULL, " \t\n"))
    {
        if(ptr[0] == ptr[strlen(ptr) - 1]) {
            printf("%s\n", ptr);
            i++;
        }
    }
    printf("Matched: %d", i);
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2011, 19:07
Помогаю со студенческими работами здесь

Дана строка символов. Определить количество слов, у которых первый и последний символы совпадают между собой.
Собственно само задание. 2)Дана строка символов. Определить количество слов, у которых первый и ...

Определить количество слов, у которых первый и последний символы совпадают
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;sstream&gt; using namespace std; int...

Определить количество слов текста, в которых первый и последний символы совпадают
Написать программу, которая: • Выводит текст на экран дисплея; • По нажатию произвольной клавиши...

вывод текста, определение количество слов в тексте, у которых первый и последний символы совпадают.
Здравствуйте. Прошу пожалуйста мне помочь с написанием этой программы. Всем за ранее огромное...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru