5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
1

Распечатать слова, в которых буквы упорядочены по алфавиту

02.05.2010, 17:37. Показов 3176. Ответов 9
Метки нет (Все метки)

Распечатать те слова, в которых либо буквы упорядочены по алфавиту,
либо каждая буква входит в слово не менее двух раз (т.е. слова типа BEER, АВВА)

я тут пробовал проверять упорядочены ли слова по алфавиту.что не так?

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
#include <stdio.h>
#include <conio.h>
#define c 50
 
void main()
 
 {
    char t[ c];
    int a=1,i,x;
    printf("Vvedite text:\n");
    scanf("%",&t[i]);
    
    i=getchar();
    while(i!='\n') 
    {
                while (i==' ')
            i=getchar();     // пропускает пробелы перед словами
                if(i=='\n')
         break;
        while(i!=' ' && i!='\n') 
        {   
             i=getchar();
             if(i<(i+1))
                 a=0;
        }
             if(a==0)
                 for(i=0;i<x;i++)
                 printf("%c",t[i]);
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.05.2010, 17:37
Ответы с готовыми решениями:

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

Распечатать те слова текста, в которых буквы упорядочены по алфавиту.
Привет форумчане помогите с прогой. Дан текст. Распечатать те слова, в которых буквы упорядочены...

Строки: распечатать те слова предложения, в которых буквы упорядочены по алфавиту
помогите пожалуйста написать программу: Дано предложение, состоящее из слов, разделенных запятой...

Перевернуть слова, в которых буквы упорядочены по алфавиту
Задана строка символов из слов, в которой все слова состоят из строчных латинских букв....

9
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
11.05.2010, 20:44  [ТС] 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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define c 50
 
void main()
 
 {
    char t[ c];
    int a=1,i,x;
    printf("Vvedite text:\n");
    gets(t);
    x=strlen(t);
    
    for(i=0;i<x;i++)
    while(i!='\n') 
    {
                while (i==' ')
            i=getchar();     // пропускает пробелы перед словами
                if(i=='\n')
         break;
        while(i!=' ' && i!='\n') 
        {   
             
             if(i<(i+1))
                 a=0;
        }
             if(a==0)
                 for(i=0;i<x;i++)
                 printf("%c",t[i]);
    }
}
???
0
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
12.05.2010, 00:03 3
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
#include <stdio.h>
#include <conio.h>
#define size 101
 
void main()
{
    char str[size];
    int flag, flags, i, j, k;
    printf("\nVvedite text:");
    gets(str);  
    for(i=0; str[i]!='\0'; i++)
    {
        if(str[i]==' ') continue;     // Пропуск пробелов
 
        flag=0;
        j=i;
        for(; str[i+1]!=' ' && str[i+1]!='\0'; i++)   //Проверка на упорядоченность
            if(str[i]>str[i+1]) { flag=1; break; }
 
        if(flag)
        {
            flag=0;
            i=j;
            while(str[i]!=' ' && str[i]!='\0')
            {
                flags=0;
                for(k=j; str[k]!=' ' && str[i]!='\0'; k++)    
                    if(str[k]==str[i] && i!=k) { flags=1; break; }
                    if(!flags) { flag=1; break; }
                i++;
            }
        }
        if(!flag)
        {
            for(; j<=i; j++) printf("%c", str[j]);
            printf(" ");
        }
        while(str[i]!=' ' && str[i]!='\0') i++; i--;
    }
    getch();
}
Вот что-то типо того. Правда здесь рассматриваются строчные и прописные буквы как разные.
1
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
12.05.2010, 17:52  [ТС] 4
Цитата Сообщение от SashaPinsk Посмотреть сообщение
continue
где можна об этом операторе почитать?

я вот как понял:


Цитата Сообщение от SashaPinsk Посмотреть сообщение
if(str[i]>str[i+1]) { flag=1; break; }

если первый больше следующего то выходим из цикла и ничего не делаем


Цитата Сообщение от SashaPinsk Посмотреть сообщение
if(flag)
тут типа если flag=0??


Цитата Сообщение от SashaPinsk Посмотреть сообщение
i=j;
мы i возвращем начальное значение т.к. было раньше j=i;

Цитата Сообщение от SashaPinsk Посмотреть сообщение
{ flags=0; for(k=j; str[k]!=' ' && str[i]!='\0'; k++) if(str[k]==str[i] && i!=k) { flags=1; break; } if(!flags) { flag=1; break; } i++; }
а вот с к я тут ваще запутался.можна объяснить?
0
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
12.05.2010, 19:26 5
1) оператор continue заканчивает выполнение текущей итерации(в цикле);
2) то выходим из цикла и устанавливаем флаг, что слово неупорядоченное;
3) нет, если flag!=0
4) смотри по контексту проги...
5) весь этот блок проверяет слово на наличие повторновстречающихся в нём букв:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
if(flag)
                {
                        flag=0;
                        i=j;
                        while(str[i]!=' ' && str[i]!='\0')
                        {
                                flags=0;
                                for(k=j; str[k]!=' ' && str[i]!='\0'; k++)    
                                        if(str[k]==str[i] && i!=k) { flags=1; break; }
                                        if(!flags) { flag=1; break; }
                                i++;
                        }
                }
Далее мы выводим слово(если оно удовлетворяет условию). И устанавливаем переменную i сразу за
прочитанным на данной итерации словом
1
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
12.05.2010, 23:06  [ТС] 6
Цитата Сообщение от SashaPinsk Посмотреть сообщение
if(!flag)
а это выходит flag==0??

Цитата Сообщение от SashaPinsk Посмотреть сообщение
5) весь этот блок проверяет слово на наличие повторновстречающихся в нём букв:
это что выполняет эту часть задачи??->
Цитата Сообщение от Бо Посмотреть сообщение
либо каждая буква входит в слово не менее двух раз (т.е. слова типа BEER, АВВА)
0
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
12.05.2010, 23:56 7
Правильно думаешь
1
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
13.05.2010, 09:43  [ТС] 8
Цитата Сообщение от Бо Посмотреть сообщение
либо каждая буква входит в слово не менее двух раз (т.е. слова типа BEER, АВВА)
а тут вот смотри для этих слов
Цитата Сообщение от Бо Посмотреть сообщение
BEER, АВВА
выводит,т.к. они упорядочены по алфавиту.а если DDAQ,то не выведет.как быть?

Добавлено через 51 минуту
и то
Цитата Сообщение от Бо Посмотреть сообщение
BEER
выводит,а вот
Цитата Сообщение от Бо Посмотреть сообщение
АВВА
-нет.

как быть??
0
39 / 37 / 13
Регистрация: 27.12.2009
Сообщений: 73
13.05.2010, 16:33 9
Проверил, работает нормально; сделай скриншот выполнения проги где выдаёт ошибку
1
5 / 5 / 2
Регистрация: 08.12.2009
Сообщений: 158
13.05.2010, 17:48  [ТС] 10
Цитата Сообщение от SashaPinsk Посмотреть сообщение
Проверил, работает нормально; сделай скриншот выполнения проги где выдаёт ошибку
не ошибку не выдает.просто не печатает во ттакие слова:АВВА,DDAQ
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2010, 17:48
Помогаю со студенческими работами здесь

Напечатать слова, у которых буквы упорядочены по алфавиту
Всем доброго времени суток, помогите пожалуйста закодить прогу. У меня задание: Дана строка,...

Вывести слова, в которых нет повторяющихся букв и буквы слова упорядочены по алфавиту
Дан текст. Вывести слова, в которых нет повторяющихся букв и буквы слова упорядочены по алфавиту.

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

Напечатать те слова текста, которые отличны от последнего слова и в которых буквы упорядочены по алфавиту
Дан текст, состоящий из латинских букв. Между соседними словами – не менее одного пробела; за...


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

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

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