C语言作业
【问题描述】某渔人从y年a月b日起,实行“三天打鱼两天晒网”,判断同年c月d日(c>=a,若c==a,则d>=b)他在打鱼(输出1)还是在晒网(输出0)。y、a、b和c、d从键盘输入,格式为y-m-d和m-d。要求编写函数:
⑴ intleap( inty );
y年为闰年,则返回1,否则返回0。
⑵ intdays( int y, int m, int d );
返回y年m月d日是该年的第几天。
【输入形式】
从键盘输入开始日期,格式为:年-月-日。
从键盘输入要判断的日期,格式为:月-日。
【输出形式】
输出1(表示打鱼)或0(表示晒网)。
【样例输入】
2008-2-10
4-29
【样例输出】
0 本帖最后由 jackz007 于 2020-11-5 20:20 编辑
#include <stdio.h>
int leap(int y)
{
if(! (y % 4) && (y % 100) || ! (y % 400)) return 1 ;
else return 0 ;
}
int days(int y , int m , int d)
{
int b = {31 , 28 , 31 , 30 , 31 , 30 , 31 , 31 , 30 , 31 , 30 , 31} , k , r ;
for(r = d , k = 1 ; k < m ; k ++) r += b ;
if(leap(y) && m > 2) r ++ ;
return r ;
}
main(void)
{
int y , m0 , d0 , m , d , r ;
scanf("%d-%d-%d" , & y , & m0 , & d0) ;
scanf("%d-%d" , & m , & d) ;
r = (days(y , m , d) - days(y , m0 , d0)) % 5 ;
if(r < 3) printf("1\n") ;
else printf("0\n") ;
} #include<stdio.h>
int leap(int); //判断是否闰年i=1 为闰年, i=0 为平年。
int days(int, int, int); //计算当前日期,是该年的第几天。
int i;
int leap(int y)
{
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
{
i = 1;
}
else
{
i = 0;
}
return i;
}
int days(int y, int m, int d)
{
int day = 0;
if (i == 1)
{
int a = { 0,31,60,91,121,152,182,213,244,274,305,335 };
int j = 0;
for (j; j <= m; j++)
{
if (m == j)
{
day = d + a;
}
}
}
if (i == 0)
{
int a = { 0,31,59,90,120,151,181,212,243,273,304,334 };
int j = 0;
for (j; j <= m; j++)
{
if (m == j)
{
day = d + a;
}
}
}
return day;
}
int main(void)
{
int year, a, b; //定义起始日期的年月日。
int c, d; // 定义现在的月,日。
int max, mid; //max=开始日期是这一年的第几天。 mid=当前日期是这一年的第几天,两个相减为从开始日期到现在的天数。
int z; //max与mid相减。从开始到现在的天数。
printf("输入开始日期(例如年-月-日):\n");
scanf_s("%d-%d-%d", &year, &a, &b);
printf("输入判断日期(例如月-日):\n");
scanf_s("%d-%d", &c, &d); // c>=a,if c==a, { d>=b }
leap(year);
max=days(year, a, b);
mid=days(year, c, d);
z = max - mid;
if (z % 5 == 1 || z % 5 == 2 || z % 5 == 3)
{
printf("打鱼!"); //这里直接打印打鱼。
}
else if (z % 5 == 0 || z % 5 == 4)
{
printf("晒网!"); //这里直接打印晒网。
}
return 0;
} 来学习一下 Dadong丶 发表于 2020-11-4 17:54
方便理解,好评‘
y_arduino 发表于 2020-11-5 15:46
方便理解,好评‘
感谢支持!继续努力。{:5_109:}
页:
[1]