定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年 问题。 写一个函数days,实现上述计算。由主函数将年、月、日传递给days函数,计算后将 日子数传回主函数输出
/*定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年 问题。 写一个函数days,实现上述计算。由主函数将年、月、日传递给days函数,计算后将 日子数传回主函数输出*/
#include <stdio.h>
typedef struct {
int year;
int month;
int day;
}Date;
int main()
{
int days(int i,int j,int k);
Date date;
printf("请输入年、月、日:\n");
scanf("%d %d %d",&date.year,&date.month,&date.day);
printf("是本年的第%d天",days(date.year,date.month,date.day));
}
int days(int i,int j,int k)
{
int a[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31};
int flag = 0,sum = 0,b;
if(j >= 2)
{
if(i % 4 == 0&&i % 100 != 0||i % 400 == 0)
flag = 1;
}
if(flag == 0&& j == 2&&k == 29)
{
printf("没有这一天!");
return 0;
}
for(b = 0;b < j;b++)
{
sum += a[b];
}
return sum + k + flag;
}
谭浩强C程序设计(第四版)p330第1题和第2题
要在程序里多测试几组特殊值,这个程序不够健壮,缺少判断日期溢出问题的if语句。
还没有评论,来说两句吧...