Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Tru_metal
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 11:05     Найти количество слов, у которых первый и последний символы совпадают между собой. #1
Даны натуральное число 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();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2011, 11:05     Найти количество слов, у которых первый и последний символы совпадают между собой.
Посмотрите здесь:

вывод текста, определение количество слов в тексте, у которых первый и последний символы совпадают. C++
C++ В последовательности слов найти и поменять местами пару слов, у которых первые 3 буквы одного совпадают с последними 3 буквами другого
Найти количество слов, у которых первый и последний символы совпадают между собой C++
C++ Определить количество слов текста, в которых первый и последний символы совпадают
Дана строка символов. Определить количество слов, у которых первый и последний символы совпадают между собой. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
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;
}
Tru_metal
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 16:46  [ТС]     Найти количество слов, у которых первый и последний символы совпадают между собой. #3
Maxwe11
цикл пробелы тоже считает, надо какое нибудь условие еще. может внутри еще цикл?
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 18:29     Найти количество слов, у которых первый и последний символы совпадают между собой. #4
Tru_metal, для чего? работает же всё.
Tru_metal
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 18:33  [ТС]     Найти количество слов, у которых первый и последний символы совпадают между собой. #5
OstapBender
не совсем.
лишние пробелы после слов считаются за слова.
например вводим строку 100, пишем слова dad bag bib, то посчитается 3 слова, хотя должно быть 2
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 18:52     Найти количество слов, у которых первый и последний символы совпадают между собой. #6
Tru_metal, а понял, нужно добавить \n в strtok -> strtok(NULL, " \t\n").
кстате там счетчик немного неверный.
Tru_metal
0 / 0 / 0
Регистрация: 10.12.2010
Сообщений: 38
07.07.2011, 18:55  [ТС]     Найти количество слов, у которых первый и последний символы совпадают между собой. #7
OstapBender
про счетчик по подробнее.
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
07.07.2011, 18:58     Найти количество слов, у которых первый и последний символы совпадают между собой. #8
омг, ну ты посмотри
printf("Matched: %d", i); - выводит количество слов вообще.
а тебе нужно количество совпадений.
увеличивай i когда по if проходит условие, ну ясно же.
Tru_metal
0 / 0 / 0
Регистрация: 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++;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2011, 19:07     Найти количество слов, у которых первый и последний символы совпадают между собой.
Еще ссылки по теме:

Дан текст, найти количество слов и количество слов, у которых первый и последний символ совпадают C++
Определить количество слов в тексте, у которых первый и последний символы совпадают между собой C++
Определить количество слов, у которых первый и последний символы совпадают C++

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

Или воспользуйтесь поиском по форуму:
OstapBender
 Аватар для OstapBender
581 / 519 / 35
Регистрация: 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);
Yandex
Объявления
07.07.2011, 19:07     Найти количество слов, у которых первый и последний символы совпадают между собой.
Ответ Создать тему
Опции темы

Текущее время: 16:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru