0

ANSI C を使用して、従来の形式の単純な年間カレンダーをコンソール アプリケーションに実装しています。3 x 4 か月の形式で表示するには、カレンダーをタブで表示する必要があります。これまで、以下のコードに示すように、すべての月を互いに下に表示することができました。タブ部分にどのように取り組むことができますか? たとえば、1月、4月、7月、10月が最初の列になり、列ごとに作業しますが、それが最善かどうかはわかりません。 ..何か助けてください。

#include<stdio.h>

int main()
{
 int d,y,no_lp,n,i=1,j,month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

 printf("Enter year:");
 scanf("%d", &y);

 if (y%4==0)
 {month[2]=29;}

 no_lp= (27 + (42/5) + (y-1) + ((y-1)/4) - ((y-1)/100) + ((y-1)/400) + 1);
 d= no_lp%7;

 n=d;

 for(j=1;j<=12;j++)    
 {
  printf("\n\n       %s",monthname[j]);
  //printf ("\n\n%d",j);
  printf("\n Su Mo  Tu  We  Th  Fr  Sa\n");

  while(d--!=0)
    printf("    ");  //spaces for empty days

  while(i<=month[j])
  {
   if(i<10)
   {printf(" %d  ",i++);} //formating for dates with 2 digits

   else{printf("%d  ",i++);}//formatting for dates with 1 digit
   n++;

   if(n==7)        //if 7 is reached start new line
   {
    n=0;
    printf("\n");
   }
  }

  d=n;
  i=1;            //n will be the 1st day of next month
 }

 return(0);
}
4

1 に答える 1