Hey guys sorry for posting the whole code again..
How i can get my calenda program working from here? Because its not printing anything its only printing the mon tu wed etc but not the days of the month 1 - 31 and im not sure if its worked out correctly where the month starts?

Someone plz help me?

int main(void)
{
   unsigned  month;
   unsigned  year;
   unsigned long days = 0;
   int i;
   int *keeptrack;
   int daysOfMonth[MAX_MONTH] ={31,28,31,30,31,30,31,31,30,31,30,31};
   
   /* that prints array
   for(i=0; i<MAX_MONTH; i++)
   {
   printf("days array:%d\n", daysOfMonth[MAX_MONTH]);
   }*/
   
   month = getMonth();
   year  = getYear();
  
  
   if(isLeapYear(year))
   {
      
      daysOfMonth[1] = 29;  /* change feb to 29 days*/
      
   }
   
   displayCalendar(month, year, daysOfMonth, keeptrack);
   
   return EXIT_SUCCESS;
}


/***********************************track,*********  ********************************
* Function getMonth() prompt the user for a number MIN_MONTH to MAX_MONTH and
* returns that number. The number 0 is valid because this indicates that the
* user wants to select all months.
**************************************************  **************************/
unsigned getMonth()
{
   
   /*** declare variables*/
  
  
  char *prompt = "Please enter a month between 0 - 12 !\n";
  char *month;
  int valMonth;
  int monthValid;
  
  do
  {
  monthValid = TRUE;
  month = getUserInput(prompt);
  
  valMonth = strtod(month,NULL);
  monthValid = validateMonth(valMonth);
  }
  while(!monthValid);
  
  
  /*printf("hello %s",month)void ;*/
  /*printf("Please enter a month between 0 - 12\n");*/

 
  /* validation check if month entered is less then 0 > 12*/ 
 
  
  /*doint arr[] = {1,2,3};
  {
        fgets(buff, BUFF_SIZE, stdin);
	
        
	*month = atoi(buff); 
       
	while(flag == 1 || *month <0 || *month >12)
	{
	   flag = 0;
	   
	   printf("Wrong input for month from 0 - 12 only!\n");
	   printf("Please enter a month between 0 - 12\n");
	   
	   MAX_MONTHfgets(buff, BUFF_SIZE, stdin);
	   *month = atoi(buff); month = getUserInput(prompt, result);
  tmpMonth = validateMonth(vvoid alMonth, prompt, result);
	
	}
   
	month
       
	
	   MAX_MONTH                 
	
       
   }
   while(flag != 0 );
          */
  /* printf(" value of month is:%d", valMonth) ;    */
   
   return valMonth;

}


/**************************************************  **************************
* Function MAX_MONTHgetYear() prompts the user for a number MIN_YEAR to MAX_YEAR and
* returns that number.
**************************************************  **************************/
unsigned getYear(char *month)
{
   char *prompt = "Please enter the year\n";
   char *year;
   int valYear;
   int yearValid;
   
   do
   {
     year = getUserInput(prompt);
     valYear = strtod(year,NULL);
     yearValid = validateYear(valYear);
     
   }
   while(!yearValid);
   
   return valYear;
}


/**************************************************  **************************
* Function displayCalendar() displays the calendar for the user.
* The function will display the calendar for a whole month.
* If the user supplied a month of "0", then a calendar for a whole year
* is displayed instead each month displayed under the previous one (you
* don't need to try to display months side by side).
* Give attention to getting the output format exactly as shown below
* (including headings and avoid lignment). Here's an example for March 2006:
* --------------------
*      March 2006
*  S  M Tu  W Th  F  S
*           1  2  3  4
*  5  6  7  8  9 10 11
* 12 13 14 15 16 17 18
* 19 20 21 22 23 24 25
* 26 27 28 29 30 31
* 
**************************************************  **************************/
void displayCalendar(unsigned month, unsigned year, int ar[], int *track)
{
   /* function called totalDays();*/
   /* total days % 7 finds out how many spaces for each month*/
   /* figure out when to prvoid int a new line*/
   
   int i;
   int dt;
   int loop;
   int t;
   t=*track;
   
   totalDays(month, year, ar, t);
   
   printf("\n\n\n\n\t\t");
   printf("S  M  Tu W  Th  F  S\n");
   printf("%d", t);
  for(loop=0; loop<t+2; loop++)
  {
      printf("\t");
      for(dt=1; dt<=month; dt++)
  {
      
     
      if(t%7==0 && t!=0)
      {
         printf("\n\n\t\t");
	 printf("%d\t", dt);
	 t++;
      }
  
  }
  
  
  }
   
   
   
   
   
}


/**************************************************  **************************
* Function readRestOfLine() is used for buffer clearing. Source: 
* https://inside.cs.rmit.edu.atrack,u/~sdb/teaching/C-Prog/CourseDocuments/
* FrequentlyAskedQuestions/
***************************void *************************************************/
void readRestOfLine()
{
   int c;

   /* Read until the end of the line or end-of-file. */   
   while ((c = fgetc(stdin)) != '\n' && c != EOF);

   /* Clear the error and end-of-file flags. */
   clearerr(stdin);
}

char* getUserInput(char *prompt)
{
   char *result;
   char buff[BUFF_SIZE];
   
   printf(prompt);
   
   result = fgets(buff, BUFF_SIZE, stdin);
   
   
    if(result == NULL)
    {
       
        printf("Error please enter the input again!\n");
   
    }
    else if(result[strlen(result)-1] != '\n')
    {
        readRestOfLine();
    }
    
  
    return result;
   
   
}

int validateMonth(unsigned  month)
{
   
     if(month<0 || month>12) /* flag 1 for true*/
     {
	
        printf("Month error 0 or less or equal to 12 please\n");
	return FALSE;
     }
     
     return TRUE;
     
     /*return 1;*/
}

int validateYear(unsigned year)
{
   
   if(year<0 || year>3000)
   {
      printf("between 0 - 3000 only!!\n");
      return FALSE;
   }
   
   return TRUE;
}


int isLeapYear(unsigned year)
{
   /* year = 2006; test for leap year*/
   if((year%400 == 0)|| ( year%4==0 && year % 100 != 0))
   {
      printf("leap year\n");
      return TRUE; 
   }
   else
   {
      return FALSE;
   }
  /* return year;*/
}

void totalDays(unsigned month, unsigned year, int ar[], int track)
{
   int i;
   int md = 0;
   int leap=0;
   int startYear = 1900;
   
   unsigned d;
   unsigned yrd;  
   
   for(i=startYear; i<year; i++)
   {
      if((i%4==0)&&((i%100!=0)||(i%400==0)))
      {
         leap++;
      }
   
   }
   
   for(i=0; i<(month-1)&&(i<11); i++)
   {
      md = md+ar[i];
      yrd=(year-startYear)*365;
      d = yrd+leap+md;
      track=d%7;
   }
   
  /*printf("Month day:%d.yearDay1900:%d... 
   day:%d..track%d", md, yrd,d,track);*/


}

What compiler are you using? your program contains a whole bunch of errors that your compiler should have complained about. You have to fix up those problems before you can run the program. Just because the compiler may have produced an executable program doesn't mean that program will run, especially if there were compiler errors. The modern compilers I know about do not produce an executable when there are errors.

Once you get it to compile with no errors, there are other more suttle errors, such as using variables before they are initialized. See function main() which uses pointer keeptrack without initialzing it, and this will cause a big crash in function displayCalendar().

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.