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

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию

18.02.2015, 21:22. Показов 1164. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите,пожалуйста,написать программу.
Дана строка длиной n символов, содержащая слова, т.е. группы символов, разделенные пробелами и другими разделителями (знаками препинания) и не содержащие пробелов внутри себя.
Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию, что в слове нет повторяющихся букв.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2015, 21:22
Ответы с готовыми решениями:

Вывести те слова, которые отличаются от последнего слова и удовлетворяют условию
Дана строка длиной n символов, содержащая слова, т.е. группы символов, разделенные...

Найти те слова, которые отличаются от последнего слова и длина слов максимальная
Дана непустая последовательность слов (не более 50), в каждом слове не более восьми символов. Слова...

Найти те слова, которые отличаются от последнего слова
Дана непустая последовательность слов (не более 50). в каждом слове не более 8 символов. Слова...

Найти слова, которые удовлетворяют условию: длина слов максимальна
Задача на Си: Дана не пустая последовательность слов (не более 50), в каждом слове не больше 8...

3
...
1910 / 1329 / 966
Регистрация: 12.02.2013
Сообщений: 2,172
20.02.2015, 06:54 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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <ctype.h>
#include <string.h>
 
int cmp(const char* a, const char* b) {
    for (; *a && *b && (tolower(*a) == tolower(*b)); ++a, ++b) { ; }
    return (*a == *b);
}
 
int check(const char* a) {
    const char* b;
    char la;
 
    for (; *a; ++a) {
        la = tolower(*a);
        for (b = a + 1; *b; ++b) {
            if (la == (tolower(*b))) {
                return 0;
            }
        }
    }
    return 1;
}
 
int main() {
    const char CDelim[] = " \t\n";
    char str[256];
    char* words[128] = {NULL}, * last = NULL, * p;
    char** word = words;
 
    fgets(str, sizeof(str), stdin);
    p = strtok(str, CDelim);
    while (p != NULL) {
        *word++ = last = p;
        p = strtok(NULL, CDelim);
    }
 
    word = words;
    for (; *word; ++word) {
        if (!cmp(*word, last) && check(*word)) {
            printf("%s\n", *word);
        }
    }
 
    return 0;
}
1
0 / 0 / 0
Регистрация: 27.11.2014
Сообщений: 18
20.02.2015, 09:21  [ТС] 3
Спасибо большое!Буду разбираться.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12831 / 7568 / 1764
Регистрация: 25.07.2009
Сообщений: 13,960
20.02.2015, 15:13 4
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
#include <stdio.h>
#include <string.h>
 
int has_doubling(const char * s) {
    return ( *s ) ? ( strchr(s + 1, *s) || has_doubling(s + 1) ) : 0;
}
 
char * happy_print(char * str, const char * delim) {
    if ( str = strtok(str, delim) ) {
        char * last = happy_print(NULL, delim);
        if ( ! last )
            return str;
        else {
            if ( strcmp(str, last) && ! has_doubling(str) )
                printf("%s\n", str);
            return last;
        }
    }
    else
        return NULL;
}
 
#define DELIM " \t\n"
 
int main(void) {
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        happy_print(buf, DELIM);
        
    return 0;
}
правда, слова печатаются в обратном порядке...
0
20.02.2015, 15:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.02.2015, 15:13
Помогаю со студенческими работами здесь

Вывести слова предложения, которые отличны от последнего слова
Вывести слова данного предложения, которые отличны от последнего слова. Предполагается, что...

Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему свойству
Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют следующему...

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

Вывести все слова, отличные от последнего слова
Всем привет, задание на работу со строками такое: Вывести все слова, отличные от последнего слова,...


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

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

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