C语言程序解析,每一行分别都是什么意思

#include "stdio.h"
enum week { sun,mon,tue,wed,thu,fri,sat};
enum week nd(enum week w,int n)
{
    return((enum week)(((int)w+n)%7));
}
main()
{
    enum week nd(),wn;
    int n;
    scanf("%d%d",&wn,&n);
    wn=nd(wn,n);
    if (wn==0)
        printf("%d天后是星期日\n",n);
    else
        printf("%d天后是星期%d\n",n,wn);
}
#include "stdio.h"
enum week { sun,mon,tue,wed,thu,fri,sat};//枚举星期,周天为0
enum week nd(enum week w,int n)//定义nd函数,用来计算从周w开始后的n天是星期几。
{
    return((enum week)(((int)w+n)%7));
}
main()
{
    enum week nd(),wn;
    int n;
    scanf("%d%d",&wn,&n);
    wn=nd(wn,n);
    if (wn==0)
        printf("%d天后是星期日\n",n);
    else
        printf("%d天后是星期%d\n",n,wn);
}