Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2014, 15:29   #1
SsAn
Пользователь
 
Регистрация: 23.12.2013
Сообщений: 25
По умолчанию Объясните

Объясните, пожалуйста как работает эта программа.
Очень нужно
Код:
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
char str[26];
cin.getline(str, 26);
char ch = 'a';
int i=0;
while(str[i])
{
if(str[i]>ch)
{
break;
}
else
if (str[i]==ch)
ch++;

i++;
}
if (ch>'e')
cout«"Yes";
else
cout«"NO";

getch();
return 0;
}
SsAn вне форума Ответить с цитированием
Старый 04.06.2014, 15:42   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Такое впечатление что программа проверяет не состоит ли строка из строгой последовательности "abcde"...
Если да то более экзотичной программы я еще не видел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2014, 22:23   #3
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Такое впечатление что программа проверяет не состоит ли строка из строгой последовательности "abcde"...
Если да то более экзотичной программы я еще не видел.
Ага. Она проверяет соответствие первых 5 символов.

Можно написать попроще:
Код:
#include <iostream>
using namespace std;

int main()
{
    char str[26];     
    cin.getline(str, 26);
    char ch = 'a';
    
    for(size_t i=0; i!=5; ++i)
        if(str[i]==ch)
            ++ch;
        else
            return cout<<"NO", 0;

    return cout<<"Yes", 0;
}
_Bers вне форума Ответить с цитированием
Старый 04.06.2014, 22:32   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Она проверяет соответствие первых 5 символов.
Только по-моему там есть подкол - между текущим и следующим символами может быть сколь угодно большое кол-во уже пройденных символов менее текущего...
Конечный автомат чтоле?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.06.2014, 23:15   #5
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Только по-моему там есть подкол - между текущим и следующим символами может быть сколь угодно большое кол-во уже пройденных символов менее текущего...
Конечный автомат чтоле?
Неа, не может.
_Bers вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните Андрей77777 Паскаль, Turbo Pascal, PascalABC.NET 0 21.12.2012 00:46
Объясните! (С++) slim>>> Помощь студентам 3 16.03.2010 19:26
Объясните Alexsssandr Помощь студентам 2 17.02.2010 20:50
Объясните Sergo(1) Помощь студентам 2 10.05.2009 22:46
Объясните!!! Dawystrik Общие вопросы Delphi 1 20.03.2009 12:07