编写程序,输入一个日期(年、月、日),计算并输出该日是该年中的第几天。要求编写函数计算某日是该年中

的第几天,用结构指针作为函数参数,注意闰年问题

代码如下:

#include <stdio.h>

 int main() 

 { int day, month, year, sum, leap; 

 printf("\n请输入年、月、日,格式为:年,月,日(2015,12,10)\n");

  scanf("%d%d%d", &year, &month, &day); // 格式为:2019 05  10

  switch (month) // 先计算某月以前月份的总天数 

  { case 1:sum = 0;break; 

  case 2:sum = 31;break;

   case 3:sum = 59;break; 

   case 4:sum = 90;break;

    case 5:sum = 120;break; 

case 6:sum = 151;break; 

case 7:sum = 181;break; 

case 8:sum = 212;break; 

case 9:sum = 243;break; 

case 10:sum = 273;break;

case 11:sum = 304;break; 

case 12:sum = 334;break;

  default:printf("data error");break; } 

  sum = sum + day; // 再加上某天的天数 

  if (year%400 == 0 || (year % 4 == 0 && year %100 != 0))

   { // 判断是不是闰年 

   leap = 1; 

   } 

   else

    { leap = 0; 

   } 

   if (leap == 1 && month > 2) 

   { // *如果是闰年且月份大于2,总天数应该加一天 

   sum++; 

   } 

printf("这是这一年的第 %d 天。", sum);

printf("\n"); 

}

扩展资料

结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针。

指向结构体变量的指针通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针。

&student1 表示结构体变量 student1 的首地址,即 student1 第一个项的地址。如果定义一个指针变量 p 指向这个地址的话,p 就可以指向结构体变量 student1 中的任意一个成员。

在数值型数组的时候可以将数组名赋给一个指针变量,从而使该指针变量指向数组的首地址,然后用指针访问数组的元素。结构体数组也是数组,所以同样可以这么做。

结构体数组的每一个元素都是一个结构体变量。如果定义一个结构体指针变量并把结构体数组的数组名赋给这个指针变量的话,就意味着将结构体数组的第一个元素,即第一个结构体变量的地址,也即第一个结构变量中的第一个成员的地址赋给了这个指针变量。

温馨提示:答案为网友推荐,仅供参考
相似回答