定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年 问题。 写一个函数days,实现上述计算。由主函数将年、月、日传递给days函数,计算后将 日子数传回主函数输出

朴灿烈づ我的快乐病毒、 2023-05-22 04:49 12阅读 0赞
  1. /*定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天,注意闰年 问题。 写一个函数days,实现上述计算。由主函数将年、月、日传递给days函数,计算后将 日子数传回主函数输出*/
  2. #include <stdio.h>
  3. typedef struct {
  4. int year;
  5. int month;
  6. int day;
  7. }Date;
  8. int main()
  9. {
  10. int days(int i,int j,int k);
  11. Date date;
  12. printf("请输入年、月、日:\n");
  13. scanf("%d %d %d",&date.year,&date.month,&date.day);
  14. printf("是本年的第%d天",days(date.year,date.month,date.day));
  15. }
  16. int days(int i,int j,int k)
  17. {
  18. int a[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31};
  19. int flag = 0,sum = 0,b;
  20. if(j >= 2)
  21. {
  22. if(i % 4 == 0&&i % 100 != 0||i % 400 == 0)
  23. flag = 1;
  24. }
  25. if(flag == 0&& j == 2&&k == 29)
  26. {
  27. printf("没有这一天!");
  28. return 0;
  29. }
  30. for(b = 0;b < j;b++)
  31. {
  32. sum += a[b];
  33. }
  34. return sum + k + flag;
  35. }

谭浩强C程序设计(第四版)p330第1题和第2题
要在程序里多测试几组特殊值,这个程序不够健壮,缺少判断日期溢出问题的if语句。

发表评论

表情:
评论列表 (有 0 条评论,12人围观)

还没有评论,来说两句吧...

相关阅读