在线等,c语言程序,就一个错误,改对了再加50分!!!!

来源:百度知道 编辑:UC知道 时间:2024/09/26 13:43:14
以下是偶自己写的小程序,目的是输入一个年份,然后打印出来这一年的日历,请大家看看是哪错了,声明一下不要给我一个同样功能的程序,麻烦大家看看我的哪错了! 谢谢了!

以下是错误提示:

error C2143: syntax error : missing ';' before 'type'
C:\Documents and Settings\Administrator\桌面\work.c(43) : warning C4098: 'main' : 'void' function returning a value
执行 cl.exe 时出错.

work.obj - 1 error(s), 0 warning(s)

我的程序:

# include "stdio.h"
int week(int y,int m,int d);
void main()
{
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};

int y,w,i,m=1,d=1;
printf("请输入一个年份yyyy:\n");
scanf("%d",&y);
if (y%4==0&&y%100!=0) monthday[1]=29;

for(m=1;m<=12;m++)
{

printf("\n %d年,%d月\n",y,m);
printf("S M T w T F S \n");

for (d=1;d<=monthday[m-1];d++)
{
w=week(y,m,d);
if(d==1)
{
for (i=0;i<w;i+

小了一个"}",位置如下所示:(main函数后部)
# include "stdio.h"
int week(int y,int m,int d);
void main()
{
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};

int y,w,i,m=1,d=1;
printf("请输入一个年份yyyy:\n");
scanf("%d",&y);
if (y%4==0&&y%100!=0) monthday[1]=29;

for(m=1;m<=12;m++)
{

printf("\n %d年,%d月\n",y,m);
printf("S M T w T F S \n");

for (d=1;d<=monthday[m-1];d++)
{
w=week(y,m,d);
if(d==1)
{
for (i=0;i<w;i++) printf(" ");
}

if(d<10) printf("%d ",d);
else printf("%d ",d);
if(w==6) printf(" \n");
}
}/*这里你小了一个“}”*/
}

int week(int y,int m,int d)
{
int w;
if((m==1)||(m==2))
{
y--;
m+=12;
}
w=(d+2*m+3*(m+1)/5