text: #include <stdio.h>
  
  /**  **/
  int backslash(int c);
  void f();
  void g();
  void h();
  void big(unsigned x);
  void limit();
  
  int main()
  {
      int i; char *s;
      
      for (s = "bfnrtvx"; *s; s++)
  	printf("%c = 0x%x\n", *s, backslash(*s));
      f();
      g();
      h();
      for (i = 0x1000000; i&0x7000000; i += 0x1000000)
  	big(i);
      limit();
      return 0;
  }	
  
  int backslash(int c)
  {
      switch (c) {
        case 'b':
  	return '\b';
        case 'f':
  	return '\f';
        case 'n':
  	return '\n';
        case 'r':
  	return '\r';
        case 't':
  	return '\t';
        case 'v':
  	return '\v';
      }
      return c;
  }
  
  void f()
  {
      int i, x = 0, y;
      
      printf("f:\n");
      for (i = 0; i <= 20; i++) {
  	y = i;
  	switch (i) {
  	  case 1: x = i; break;
  	  case 2: x = i; break;
  	  case 7: x = i; break;
  	  case 8: x = i; break;
  	  case 9: x = i; break;
  	  case 16: x = i; break;
  	  case 17: x = i; break;
  	  case 18: x = i; break;
  	  case 19: x = i; break;
  	  case 20: x = i; break;
  	}
  	printf("x = %d\n", x);
      }
  }
  
  void g()
  {
      int i;
      
      printf("g:\n");
      for (i = 1; i <= 10; i++)
  	switch (i) {
  	  case 1: case 2: printf("1 %d\n", i); break;
  	  case 3: case 4: case 5: printf("2 %d\n", i); break;
  	  case 6: case 7: case 8: printf("3 %d\n", i);
  	  default:
  	    printf("d %d\n", i); break;
  	  case 1001: case 1002: case 1003: case 1004:
  	    printf("5 %d\n", i); break;
  	  case 3001: case 3002: case 3003: case 3004:
  			printf("6 %d\n", i); break;
  	}
  }
  
  void h()
  {
      int i, n=0;
      
      printf("h:\n");
      for (i = 1; i <= 500; i++)
  	switch (i) {
  	  default: n++; continue;
  	  case 128: printf("i = %d\n", i); break;
  	  case 16: printf("i = %d\n", i); break;
  	  case 8: printf("i = %d\n", i); break;
  	  case 120: printf("i = %d\n", i); break;
  	  case 280: printf("i = %d\n", i); break;
  	  case 264: printf("i = %d\n", i); break;
  	  case 248: printf("i = %d\n", i); break;
  	  case 272: printf("i = %d\n", i); break;
  	  case 304: printf("i = %d\n", i); break;
  	  case 296: printf("i = %d\n", i); break;
  	  case 288: printf("i = %d\n", i); break;
  	  case 312: printf("i = %d\n", i); break;
  	}
      printf("%d defaults\n", n);
  }
  
  void big(unsigned x)
  {
      switch(x&0x6000000){
        case -1:
        case -2:
        case 0x0000000:
  	printf("x = 0x%x\n", x); break;
        case 0x2000000:
  	printf("x = 0x%x\n", x); break;
        case 0x4000000:
  	printf("x = 0x%x\n", x); break;
        default:
  	printf("x = 0x%x (default)\n", x); break;
      }
  }
  
  #include <limits.h>
  
  void limit()
  {
      int i;
      
      for (i = INT_MIN; i <= INT_MIN+5; i++)
  	switch (i) {
  	  case INT_MIN:	printf("0\n"); break;
  	  case INT_MIN+1:	printf("1\n"); break;
  	  case INT_MIN+2:	printf("2\n"); break;
  	  case INT_MIN+3:	printf("3\n"); break;
  	  case INT_MIN+4:	printf("4\n"); break;
  	  default:	printf("5\n"); break;
  	}
      for (i = INT_MAX; i >= INT_MAX-5; i--)
  	switch (i) {
  	  case INT_MAX:	printf("0\n"); break;
  	  case INT_MAX-1:	printf("1\n"); break;
  	  case INT_MAX-2:	printf("2\n"); break;
  	  case INT_MAX-3:	printf("3\n"); break;
  	  case INT_MAX-4:	printf("4\n"); break;
  	  default:	printf("5\n"); break;
  	}
  }
  #ifdef EiCTeStS
  main();
  #endif
  