首页 > 留学知识库

问题: C语言高手请进

下面是一个日历表,运行结果中能不能把1~12月份改为英文的?要怎样改啊,谢谢!

#include<stdio.h>
#include<conio.h>
main()
{int i=0,m=0,k,j,n=0,l,first;
int x[3]={1,25,50},y=1;
int day(int);
int a[2][13]={{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};


printf ("\n\n********************************************************************************\n\n");
printf("\n\nplease input the year:");
scanf("%d",&i); l=i;
first=day(i);
if(i%4==0)k=1;
else k=0;
i=0;
while(m++<2)
{clrscr();
printf(" %d",l);
for(;i<6*m;i++)
{
if(i<6)y=(i/3)*8+2; else y=((i-6)/3)*8+2 ;
gotoxy(x[i%3],y);
printf(" %d",i+1);
gotoxy(x[i%3],++y);
printf(" su mo tu we th fr sa");
gotoxy(x[i%3],++y);
for(n=0;n<first;n++)
printf(" ");
for(j=1;j<=a[k][i];j++)
{printf("%3d",j);
if((first+j)%7==0)
gotoxy(x[i%3],++y);}

first=(first+a[k][i])%7;
} if(m==1) printf("\n\nany key to continue");
else printf("\n\nAny key to end");
printf ("\n\n********************************************************************************\n\n");
getch(); }
}


day(int i)
{int k,s=0;
if(i>2000)
{for(k=2000;k<i;k++)
if(k%4==0) s=s+366;
else s=s+365;
return((s+6)%7);}
else if(i=2000) return(5);
else
{for(k=i;k<2000;k++)
if(k%4==0)s=s+366;
else s=s+365;
return(7-(s+6)%7);}
}

解答:

改很麻烦。
不如用以下这个程序吧。
#include <stdio.h>
#include<conio.h>
#include<stdlib.h>
int IsLeapYear(int);
void main()
{
int i;
int day;
int year;
int temp;
int temp_i;
long int Year_days = 0;
int Year_Start = 1;
int Per_Year_Days;
int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29};

printf("Please enter the year: ");
scanf("%d",&year);

while(Year_Start < year)
{
if( IsLeapYear( Year_Start ) )
Per_Year_Days = 366;
else
Per_Year_Days = 365;

Year_days = Year_days + Per_Year_Days;
Year_Start++;
}

for( temp = 1; temp <=12; temp++ )
{
switch( temp )
{
case 1:
printf(" January(%d)\n",year);
break;
case 2:
printf(" February(%d)\n",year);
break;
case 3:
printf(" March(%d)\n",year);
break;
case 4:
printf(" April(%d)\n",year);
break;
case 5:
printf(" May(%d)\n",year);
break;
case 6:
printf(" June(%d)\n",year);
break;
case 7:
printf(" July(%d)\n",year);
break;
case 8:
printf(" August(%d)\n",year);
break;
case 9:
printf(" September(%d)\n",year);
break;
case 10:
printf(" October(%d)\n",year);
break;
case 11:
printf(" November(%d)\n",year);
break;
case 12:
printf(" December(%d)\n",year);
break;
}
i = Year_days % 7;
printf("Mon Tue Wed Thu Fri Sat Sun\n");
if( i != 0 )
for( temp_i = 0; temp_i < i; temp_i++)
printf(" ");
day = 1;
if( IsLeapYear(year) && temp == 2)
while( day <= month_day[12] )
{
if( day >1 )
if( Year_days % 7 == 0 )
printf("\n");
if( day >= 10 )
printf("%d ",day);
else
printf("%d ",day);
Year_days++;
day++;
}

else
while (day <= month_day[temp-1])
{
if( day > 1 )
if( Year_days % 7 == 0 )
printf("\n");
if( day >=10 )
printf("%d ",day);
else
printf("%d ",day);
Year_days++;
day++;
}
printf("\n");
if( getch() == 'q' )
exit(0);
}
getch();
}


int IsLeapYear( int year )
{
if ((year %4 == 0) && (year % 100 != 0) ||
(year % 400 == 0) )
return 1;
else
return 0;
}