Hello. Our teacher gave us this piece of code:

Code:
#include <stdio.h>

#define PR(a,f) printf (#a "= %#f"\t", (int)(a) )
#define PRINT(a,f) PR(a,f); putchar ('/n')
#define PRINT2(a,b,f1,f2) PR(a,f1); PRINT(b,f2)
#define PRINT3(a,b,c,f1,f2,f3)   \
                       PR(a,f1); PRINT2(b,c,f2,f3)
#define MAX(a,b) (a<b ? b : a)
#define TAB(c,i,oi,t) if(c=='\t')\
      for (t=8-(i-oi-1)%8, oi=i; t; t--)\
      putchar('*')

void main (void)
{
    {
        int x=19, y=20;
        PRINT3 ( MAX(x++,y), x, y ,d,d,d);
        PRINT3 ( MAX(x++,y), x, y ,d,d,d);
    }
    {
        static char input[] = "\tlight\tweight";
        char c;
        int i, oldi, temp;

        for (oldi=-1, i=0; (c=input[i])!='\0'; i++)
        TAB (c, i, oldi, temp);
        else putchar(c);
        putchar('\n');
    }
}
The answer is:
Code:
(x++<y ? y : x++)= 24   x= 24 y= 24
(x++<y ? y : x++)= 25   x= 24 y= 24
********black***night
The problem is that we were given it very lately and he didn't even start explaining it. He said that we had very little time (which is true) and we should 'figure it out' by ourselves. I have no idea what's going on there and I know that majority of my classmates (and all of those who I asked) are in the same position as me. I don't know how it may learn us C, but we are given points by him and we must survive it.

Could any of you post some instructions to this program? At least 15 people will benefit from this.

Thanks in advance!