LinuxForum.Fans
Тема

Вывести сообщение с окончанием по правилам русского языка

Автор: SektorCT 3 сообщений 1159 просмотров
#356956

Добрый день.
Я только учу программирование и тут такой вопрос возник. Вывводится сообщение колличества слов и какое слово.
Так вот если цифра 1 то будет "1 слово" а если 2-4 то "2-4 слова" и так далее.
Подскажите как это организовать?
...
}
printf ( "В этом предложении %d слов %s", count, word );
}

#356961

Можно при помощи gettext.
Можно просто организовать выбор формы вывода операторами if...else, case. Но gettext даст еще и возможность локализации.

#356992

Если не забыл синтаксис, то примерно так:

text
#include <stdio.h>
#define PLURAL(n) ((n)%10==1 && (n)%100!=11 ? 0 : (n)%10>=2 && (n)%10<=4 && ((n)%100<10 || (n)%100>=20) ? 1 : 2)
char * msg[] = {"слово", "слова", "слов"};
void main() {
  for (int count=0; count<6; count++)
    printf ( "В этом предложении %d %s\n", count, msg[PLURAL(count)] );
}
Войдите или зарегистрируйтесь, чтобы ответить.