Язык Си в примерах/Простая грамматика: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
мНет описания правки
Строка 3:
Грамматики (подмножества множества слов в некотором алфавите ) можно
описывать с помощью правил
 
 
s -> 0
Строка 9 ⟶ 8 :
s -> 2 s s
s -> 3 s s s
 
 
Правило <tt>s -> 3 s s s</tt> , к примеру, означает, что если A, B и C являются корректными словами (принадлежат грамматике), то и слово "3 A B C" тоже является корректным (пробелы не считаются).
 
* Примеры корректных слов: 0, 10, 110, 200, 2100, 2010, 1111111110.
* Примеры не корректных слов: 01, 00, 300., 3333, 11120.
 
Примеры не корректных слов: 01, 00, 300.
 
 
Приведённая ниже программа на С определяет корректность введённого слова.
 
Приведённая ниже программа на ССи определяет корректность введённого слова.
 
#include <stdio.h>
#include <limits.h>
int Read()
int
Read()
{
int head,i;
scanf("%d", &head);
if(head < 0 || head > 3) {
return 1;
}
for(i = 0; i < head ; i++) {
if(Read()) {
if(Read())
return 1;
if(Read())}
}
return 0;
}
int main()
main()
{
if(!Read()) {
{ int tmp;
int tmp;
if(!scanf("%d",&tmp))
printf("in");
printf("correct\n");
} else {
else
printf("incorrect\n");
else}
return 0;
}