Кресты / Говнокод #720 Ссылка на оригинал

0

  1. 1
  2. 2
#define IsVowel(symb) (((symb == 'a') || (symb == 'e') || (symb == 'i') || (symb == 'o') || (symb == 'y') || (symb == 'u') || (symb == 'A') || (symb == 'E') || (symb == 'E') || (symb == 'I') || (symb == 'O') || (symb == 'U')) ? 1 : 0)
#define IsGood(word) (((!IsVowel(word[0])) && (IsVowel(word[strlen(word) - 1]))) ? 1 : 0)

Необходимо вывести в алфавитном порядке те слова, первая буква которых является согласной, а последняя гласной.
Как говорится, лучше проще и понятнее, чем умнее.

Запостил: guest guest, (Updated )

Комментарии (2) RSS

  • Kirikaza:
    А теперь представим
    IsVowel(chr++)
    и
    IsVowel(chr ^ BIT_MASK)
    .
    Ну и шедевр:
    char *ss = ...;
    for (...) { if (IsGood(NextWord(ss)); }

    Теперь NextGood вызовется в макросе либо 1 раз, либо 3 -- как повезёт 😉 При этом если 3й вызов даст строку длиннее, чем 2й, то полный UB.
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8