Skip to main content
added 526 characters in body
Source Link
user
  • 357
  • 2
  • 21
  • 68
#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    i ++;
  int c = getchar();
    i ++;
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        ifswitch (c) !{
          case 100:
            i = 1;
          case 114):
            continue;
          default:
            i = 0;
            continue;
        }
      case 3:
        ifswitch (c) !{
          case 100:
            i = 1;
          case 97):
            continue;
          default:
            i = 0;
            continue;
        }
      case 4:
        ifswitch (c) !{
          case 100:
            i = 1;
          case 119):
            continue;
          default:
            i = 0;
            continue;
        }
      case 5:
        ifswitch (c) !{
          case 100:
            i = 1;
          case 33):
            continue;
          default:
            i = 0;
            continue;
        }
      default:
        puts("bang!");
    }
    break;
  }
}
#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    int c = getchar();
    i ++;
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        if (c != 114) i = 0;
        continue;
      case 3:
        if (c != 97) i = 0;
        continue;
      case 4:
        if (c != 119) i = 0;
        continue;
      case 5:
        if (c != 33) i = 0;
        continue;
      default:
        puts("bang!");
    }
    break;
  }
}
#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    i ++;
  int c = getchar();
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        switch (c) {
          case 100:
            i = 1;
          case 114:
            continue;
          default:
            i = 0;
            continue;
        }
      case 3:
        switch (c) {
          case 100:
            i = 1;
          case 97:
            continue;
          default:
            i = 0;
            continue;
        }
      case 4:
        switch (c) {
          case 100:
            i = 1;
          case 119:
            continue;
          default:
            i = 0;
            continue;
        }
      case 5:
        switch (c) {
          case 100:
            i = 1;
          case 33:
            continue;
          default:
            i = 0;
            continue;
        }
      default:
        puts("bang!");
    }
    break;
  }
}
added 129 characters in body
Source Link
user
  • 357
  • 2
  • 21
  • 68

C

#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    int c = getchar();
    i ++;
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        if (c != 114) i = 0;
        continue;
      case 3:
        if (c != 97) i = 0;
        continue;
      case 4:
        if (c != 119) i = 0;
        continue;
      case 5:
        if (c != 33) i = 0;
        continue;
      default:
        puts("bang!");
    }
    break;
  }
}

Compiled with gcc -O3 -o foobar foobar.c, run with ./foobar (I'm on Windows, so the -o and ./foobar is a guess).

A variation on Hyper Neutrino'shyper-neutrino's solution. Uses a switch statement instead of indexing into a string. Hopefully, this makes it faster.

C

#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    int c = getchar();
    i ++;
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        if (c != 114) i = 0;
        continue;
      case 3:
        if (c != 97) i = 0;
        continue;
      case 4:
        if (c != 119) i = 0;
        continue;
      case 5:
        if (c != 33) i = 0;
        continue;
      default:
        puts("bang!");
    }
    break;
  }
}

A variation on Hyper Neutrino's solution.

C

#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    int c = getchar();
    i ++;
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        if (c != 114) i = 0;
        continue;
      case 3:
        if (c != 97) i = 0;
        continue;
      case 4:
        if (c != 119) i = 0;
        continue;
      case 5:
        if (c != 33) i = 0;
        continue;
      default:
        puts("bang!");
    }
    break;
  }
}

Compiled with gcc -O3 -o foobar foobar.c, run with ./foobar (I'm on Windows, so the -o and ./foobar is a guess).

A variation on hyper-neutrino's solution. Uses a switch statement instead of indexing into a string. Hopefully, this makes it faster.

Source Link
user
  • 357
  • 2
  • 21
  • 68

C

#include "stdio.h"

int main() {
  int i = 0;
  while (1) {
    int c = getchar();
    i ++;
    switch (i) {
      case 1:
        if (c != 100) i = 0;
        continue;
      case 2:
        if (c != 114) i = 0;
        continue;
      case 3:
        if (c != 97) i = 0;
        continue;
      case 4:
        if (c != 119) i = 0;
        continue;
      case 5:
        if (c != 33) i = 0;
        continue;
      default:
        puts("bang!");
    }
    break;
  }
}

A variation on Hyper Neutrino's solution.