#include<stdio.h>
int main(){
int day1[12]={31,28,31,30,31,30,31,31,30,31,30,31};//平年每月的天数集合
int day2[12]={31,29,31,30,31,30,31,31,30,31,30,31};//闰年每月的天数集合
int year,month,day,flag=0,year1,flag1=0;
int sum,sum1,temp;
int data;
//fp 读取文件的指针
FILE *fp = fopen("in.txt","r");
//fout 向文件写的指针
FILE *fout = fopen("out.txt","w");
if(!fp){
//如果指针所指的文件 不存在 不创建这个文件
printf("in.txt文件不存在!");
return -1;
}
//测试这个文件是否有内容
if(!fout){
//如果指针所指的文件 不存在 那么就创建一个名字为 out.txt的文件
printf("out.txt文件不存在!");
return -1;
}
//指针没有指到文件的末尾
while(!feof(fp)){
//循环一次是一个20100101 意思是data = 20100101 这是个数字
fscanf(fp,"%d",&data);
printf("%d\n",data);
year = data/10000;
printf("year:%d",year);
month = data/100%100;
printf("mouth:%d",month);
day = data%10;
printf("day:%d\n",day);
if(year<2010)//判断年份输入
{
printf("年份输入错误\n");
return 0;
}
for(year1=2010;year1<=year;year1++)
{
if((year%4==0)&&(year%100==0) ||(0 == year %400))//判断是否为闰年
flag+=1;
else
flag1+=1;
}
sum=366*flag+365*flag1;//年的总天数
sum1=0;
if(month>=12)
printf("月份输入错误\n");
for(int a=12;a>=month;a--)
{
switch(a)//判断月的天数
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12 :
temp=31;
break;
case 4:
case 6:
case 9:
case 11:
temp=30;
break;
case 2:
{
if((year%4==0)&&(year%100==0) ||(0 == year %400))
{
temp=29;
}
else
{
temp=28;
}
}
break;
default: temp=0;
}
sum1+=temp;
}
if((year%4==0)&&(year%100==0) ||(0 == year %400))
{
if(day<=0||day>day2[month-1])//判断日子输入
{
printf("天份输入错误\n");
return 0;
}
}
else
{
if(day<=0||day>day2[month-1])
{
printf("天份输入错误\n");
return 0;
}
}
sum=sum-sum1+day;//总天数
if(sum%5==0||sum%5==4)
{
printf("晒网\n");
//这个地方是输出到out.txt
fprintf(fout,"%s\n","he is basking!");
}
else{
printf("打鱼\n");
fprintf(fout,"%s\n","he is fishing!");
}
}
printf("\n");
fclose(fp);
fclose(fout);
return 0;
}
in.txt out.txt 与.cpp文件位置一样!如果不一样请使用绝对路径!