利用指针返回多个函数值
1 #include <stdio.h> 2 void month_day(int year, int yearday, int *pmonth, int *pday); 3 4 int main(void) 5 { 6 int day, month, year, yearday; 7 printf("input year and yearday:"); 8 scanf("%d %d", &year, &yearday); 9 month_day(year, yearday, &month, &day); 10 printf("%d-%d-%d ", year, month, day); 11 12 return 0; 13 } 14 void month_day(int year, int yearday, int *pmonth, int *pday) 15 { 16 int k, leap; 17 int tab[2][13] = { 18 {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, 19 {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, 20 }; 21 22 leap = ((year / 4 == 0) && (year / 100 != 0)) || (year % 400 == 0); 23 24 for (k = 1; yearday > tab[leap][k]; k++) 25 { 26 yearday -= tab[leap][k]; 27 } 28 29 *pmonth = k; 30 *pday = yearday; 31 }