#include<stdio.h>
int main()
{
/* 定义需要计算的日期 */
int year = 2008;
int month = 8;
int day = 8;
int i,flag;
switch(month)
{
case 1:i=0;break;
case 2:i=i+31;break;
case 3:i=i+28;break;
case 4:i=i+31;break;
case 5:i=i+30;break;
case 6:i=i+31;break;
case 7:i=i+30;break;
case 8:i=i+31;break;
case 9:i=i+31;break;
case 10:i=i+30;break;
case 11:i=i+31;break;
case 12:i=i+30;break;
default:printf("一年只有12个月");break;
}
i=i+day;
if(year%400==0||(year%4==0 && year%100!=0))
flag=1;
else
flag=0;
if(flag=1&&month>=2)
i++;
printf("%d年%d月%d日是这一年的第%d天\n",year,month,day,i);
return 0;
}
最后那个if的控制表达式中,应该是 flag == 1 吧,你写成了给flag赋值1。