C語言實現三天打魚兩天曬網


#include<stdio.h>
typedef struct{
	int year,month,day;
}Data;              //創建日期的結構體 
void input(Data *p) //數據獲取
{
	int data;int permonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        printf("請輸入年月日,無需空格")
	scanf("%d",&data);
	int day=data%100;
	data=data/100;
	int month=data%100;
	int year=data/100;
	if((year<2010)||(month<1||month>12)||(month==2&&(year%4!=0||year%400!=0)&&day>=29)||(day>permonth[month]))
	//判斷數據的合法性:1.月數在1~12且年數大於2010 2.閏年的二月才有29天 3.每月的天數都要和實際情況對應 
	{	
		printf("輸入日期錯誤,請重新輸入\n");
		input(p);	
	}
	else{
		p->day=day;p->month=month;p->year=year;
	}
}
void init_data(Data *p) //初始化
{
	p->day=0;
	p->month=0;
	p->year=0;
}
bool Run_nian(int year)  //判斷閏年
{
	if(year%4==0&&year%100!=0||year%400==0)
	return true;
	else
	return false;
}
void Count(Data *p,int *sum)  //計算結果
{
	int permonth[13]={31,28,31,30,31,30,31,31,30,31,30,31};
	int total = 0;
	for(int year=2010;year<p->year;++year)
	{
		if(Run_nian(p->year))
		{
			total+=366;
		}
		else
		{
			total+=365;
		}
	}
	if(Run_nian(p->year))
	{
		permonth[1]+=1;
	}
	for(int i=1;i<p->month;++i)
	{
		total+=permonth[i];
	}
	total+=p->day;
	*sum = total;
}
int main()
{
	Data p;
	int sum;
	init_data(&p);
	input(&p);
	Count(&p,&sum);
	if(sum%5==4||sum%5==0)  //取余 
	{
		printf("今天曬網");
	}
	else
	{
		printf("今天打漁"); 
	} 	
	return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM