Share Pastebin
Guest
Public paste!

Untitled

By: a guest | Mar 21st, 2010 | Syntax: C | Size: 1.70 KB | Hits: 50 | Expires: Never
Copy text to clipboard
  1. #include <stdio.h>
  2. typedef enum {wait,kov,barmi,nemkereszt,vonal,nulla,nullax,digit,W,W6,W6pont,pont,q,qq,qqr,qqri,qqriq} allapotok;
  3.  
  4. int main() {
  5.  
  6. int sor=0,jo=0,ch,seged=0;
  7. allapotok allapot=barmi;
  8.  
  9. while((ch=getchar())!=EOF) {
  10.         switch(allapot) {
  11.                 case wait:              if(ch=='\n'){sor++;allapot=barmi;seged=0;} break;
  12.                 //case kov:             allapot=barmi;seged=0;break;
  13.                 case barmi:             if (ch!='#'&& ch!='\n') allapot=nemkereszt; else allapot=wait; break;
  14.                 case nemkereszt:        if (ch=='-') allapot=vonal;else if (ch=='0') allapot=nulla;else if(ch>'0'&&ch<='9')allapot=digit;else if(ch=='W')allapot=W;else allapot=wait;   break;
  15.                 case vonal:             if (ch=='0') allapot=nulla; else if (ch>='0'&&ch<='9') allapot=digit; else if(ch='W')allapot=W; else allapot=wait;  break;                                             
  16.                 case nulla:             if (ch=='x')allapot=nullax; else if (ch>'0'&&ch<='9') allapot=digit;else if(ch=='W')allapot=W; else allapot=wait;break;                                        
  17.                 case nullax:            if (ch>='0'&&ch<='9') allapot=digit;else if(ch=='W')allapot=W; else allapot=wait; break;
  18.                 case digit:             if (ch>='0'&&ch<='9') allapot=digit;    else if (ch=='W') allapot=W;else allapot=wait;break;                                           
  19.                 case W:                 if (ch=='6') allapot=W6; else allapot=wait;break;                                              
  20.                 case W6:                if (ch=='q'&& seged==1)allapot=q; seged=1; break;
  21.                 //case W6pont:          allapot=pont;break;
  22.                 //case pont:            if (ch=='q') allapot=q; break;
  23.                 case q:                 if (ch=='q') allapot=qq; else allapot=W6;       break;
  24.                 case qq:                if (ch=='r') allapot=qqr; else allapot=W6; break;
  25.                 case qqr:               if (ch=='i') allapot=qqri; else allapot=W6; break;
  26.                 case qqri:              if (ch=='q') allapot=qqriq; else allapot=W6;    break;
  27.                 case qqriq:             if(ch=='a' || ch=='B') {allapot=wait;jo++;}     else allapot=W6; break;
  28.                 }}
  29.                 printf("%o/%o\n",sor,jo);
  30.                 return 0;}