# K & R C Programs Exercise 5-9.

K and R C, Solution to Exercise 5-9:
K and R C Programs Exercises provides the solution to all the exercises in the C Programming Language (2nd Edition). You can learn and solve K&R C Programs Exercise.
C program to , Rewrite the routines of K & R C Programs Exercise 5-8 day_of_year and month_day with pointers instead of indexing.Read more about C Programming Language .

`/************************************************************ You can use all the programs on  www.c-program-example.com* for personal and learning purposes. For permissions to use the* programs for commercial purposes,* contact [email protected]* To find more C programs, do visit www.c-program-example.com* and browse!* *                      Happy Coding***********************************************************/#include <stdio.h>static char daytab[2][13] =  {  {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},  {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},};int day_of_year(int year, int month, int day){ int i, leap; char *p; leap = (year%4 == 0 && year%100 != 0) || year%400 == 0; /* Set `p' to point at first month in the correct row. */ p = &daytab[leap][1]; /* Move `p' along the row, to each successive month. */ for (i = 1; i < month; i++) {  day += *p;  ++p; } return day;}void month_day(int year, int yearday, int *pmonth, int *pday){ int i, leap; char *p; leap = (year%4 == 0 && year%100 != 0) || year%400 == 0; p = &daytab[leap][1]; for (i = 1; yearday > *p; i++) {  yearday -= *p;  ++p; } *pmonth = i; *pday = yearday;}int main(void){ int year, month, day, yearday; year = 2012; month = 7; day = 9; printf("The date is: %d-%02d-%02dn", year, month, day); printf("day_of_year: %dn", day_of_year(year, month, day)); yearday = 61; /* 2012-03-01 */ printf("Yearday is %dn", yearday); month_day(year, yearday, &month, &day); printf("month_day_pointer: %d %dn", month, day); return 0;}`
`Read more c programs `
`C BasicC StringsK and R C Programs Exercise`

You can easily select the code by double clicking on the code area above.