the function days in year is supposed to read the number of days from a date to the end of the year. I don't think the while loop is working but I don't know why. Is it a recursive function problem?Code:#include <stdio.h> #include <time.h> int days, month, year, days_1, month_1, year_1, leapy, ndays, ddays, days_total, days_beforeleap; int daysinmonth(int month) /*there is a problem in this statement, your printf is reading out ridiculous numbers for days, don't forget to ask*/ { switch(month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; case 2: return 28; case 4: case 6: case 9: case 11: return 30; default: return -1; } } int leap(int year) { if(year%400 ==0 || (year%100 != 0 && year%4 == 0)) { leapy=1; } else { leapy=0; } } int daystoyear(month, month_1, year, year_1) { int i=0, days_toend, years_todays; days_toend=daysinmonth(month)-days; while(month<month_1) { daysinmonth(month); month++; } years_todays=365*(year_1-year); days_beforeleap=days_toend+years_todays; return days_beforeleap; } daysinyear(int days, int month, int days_1, int month_1) { int i=0; days_total = daysinmonth(month) - days; for(i = month+1;i < month_1 - 1;++i); days_total += daysinmonth(i); days_total += days_1; return days_total; } int main(void) { int days_1, month_1, year_1; char a, b, a1, b1; printf("intput a date in the follwing format:\n"); printf("mmddyyyy: in other words the two digit day,two digit month,\n"); printf("and four digit year, with no slashes or heifens anywhere.\n"); scanf("%d%c%d%c%d", &month, &a, &days, &b, &year); if(month<0 || month>12 || days<0 || days>31 || year<0) { printf("data not valid"); } printf("enter the later date in the same format:\n"); scanf("%d%c%d%c%d", &month_1, &a1, &days_1, &b1, &year_1); daystoyear(month, month_1, year, year_1); printf("total days=%d",days_beforeleap); }