Uma outra parde do meu código, só falta imprimir tudo bonitinho.
#include <stdio.h>
int main(){
int g, c, x, z, e, n, d, y, dia=1, mes=1, i, j=0, diasem=0, diasem2=0,k=0,a=0, l=0,k2=0,dia2=1;
char barra[40];
char bis;
scanf("%d",&y);
printf("Calendario do ano de %d\n",y);
g=(y%19)+1; //Condicao I
c=(y/100)+1; //Condicao II
x=((3*c)/4)-12; //Condicao III
z=(((8*c)+5)/25)-5; //Condicao IV
e=((11*g)+20+z-x)%30; //Condicao V
if ((e==25 && g>11)||(e==24)) //Condicao VI
e++;
n=(44-e); //Condicao VII
if(n<21)
n=n+30;
d=((5*y)/4)-(x+10); //Condicao VIII
n=(n+7)-((d+n)%7); //Condicao IX
if(n>31){
n=n-31;
}
else
n=n;
if (y%100==0)
y=y/100;
if (y%4==0){
bis='s';
a=(n+31+29+31+30)%7;
a--;
}
else{
bis='n';
a=(n+31+28+31+30)&7;
a--;
}
i=1;
barra[0]='|';
while (i<29){
barra='-';
i++;
}
barra='-';
switch (mes){
case 1:
printf("%s%s\n",barra,barra);
printf("|Janeiro ||Fevereiro |\n");
printf("%s%s\n",barra,barra);
printf("| dom seg ter qua qui sex sab || dom seg ter qua qui sex sab |\n");
while(j<6){
printf("|");
while(k<7){
if((k>=a)&&(dia>=1)&&(dia<=31)){
if ((dia>=1)&&(dia<=9)){
printf(" 0%d",dia);
dia++;
k++;
}
else{
printf(" %d",dia);
dia++;
k++;
}
}
else{
printf(" --");
k++;
}
}
printf(" ||\n");
a=0;
k=0;
j++;
}
}
j=0;
dia=1;
printf("%s%s\n",barra,barra);
mes++;
}