⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 week1.c

📁 帮助大家学习c语言的好帮手
💻 C
字号:
/* Program Name: week1.c                                     */
/* Purpose:      Program to enter the ages and incomes of up */
/*               to 100 people.  The program prints a report */
/*               based on the numbers entered.               */
/*-----------------------------------------------------------*/
/*--------------------*/
/* included files     */
/*--------------------*/
#include <stdio.h>

/*--------------------*/
/* defined constants  */
/*--------------------*/

#define MAX   100
#define YES   1
#define NO    0

/*--------------------*/
/* variables          */
/*--------------------*/

long   income[MAX]; /* to hold incomes     */
int    month[MAX], day[MAX], year[MAX]; /* to hold birthdays */
int     x, y, ctr;   /* For counters        */
int     cont;  /* For program control */
long    month_total, grand_total;  /* For totals      */

/*--------------------*/
/* function prototypes*/
/*--------------------*/

int main(void);
int display_instructions(void);
void get_data(void);
void display_report(void);
int continue_function(void);

/*--------------------*/
/* start of program   */
/*--------------------*/

int main(void)
{
    cont = display_instructions();

    if ( cont == YES )
    {
        get_data();
        display_report();
    }
    else
        printf( "\nProgram Aborted by User!\n\n");

   return 0;
}
/*-----------------------------------------------------------*
 *  Function:  display_instructions()                        *
 *  Purpose:   This function displays information on how to  *
 *             use this program and asks the user to enter 0 *
 *             to quit, or 1 to continue.                    *
 *  Returns:   NO  - if user enters 0                        *
 *             YES - if user enters any number other than 0  *
 *-----------------------------------------------------------*/
int display_instructions( void )
{
   printf("\n\n");
   printf("\nThis program enables you to enter up to 99 people\'s ");
   printf("\nincomes and birthdays.  It then prints the incomes by");
   printf("\nmonth along with the overall income and overall average.");
   printf("\n");

   cont = continue_function();
   return( cont );
}
/*-------------------------------------------------------------*
 *  Function:  get_data() *
 *  Purpose: This function gets the data from the user. It     *
 *           continues to get data until either 100 people are *
 *           entered, or until the user enters 0 for the month.*
 *  Returns: nothing *
 *  Notes:   This allows 0/0/0 to be entered for birthdays in  *
 *           case the user is unsure.  It also allows for 31   *
 *           days in each month.                               *
 *-------------------------------------------------------------*/

void get_data(void)
{
   for ( cont = YES, ctr = 0; ctr < MAX && cont == YES; ctr++ )
   {
      printf("\nEnter information for Person %d.", ctr+1 );
      printf("\n\tEnter Birthday:");

      do
      {
          printf("\n\tMonth (0 - 12): ");
          scanf("%d", &month[ctr]);
      }while (month[ctr] < 0 || month[ctr] > 12 );

      do
      {
          printf("\n\tDay (0 - 31): ");
          scanf("%d", &day[ctr]);
      }while ( day[ctr] <  0 || day[ctr] > 31 );

      do
      {
          printf("\n\tYear (0 - 2002): ");
          scanf("%d", &year[ctr]);
      }while ( year[ctr] < 0 || year[ctr] > 2002 );

      printf("\nEnter Yearly Income (whole dollars): ");
      scanf("%ld", &income[ctr]);

      cont = continue_function();
   }
   /* ctr equals the number of people that were entered.    */
}
/*----------------------------------------------------------*
 *  Function: display_report()                              *
 *  Purpose:  This function displays a report to the screen *
 *  Returns:  nothing                                       *
 *  Notes:    More information could be printed.            *
 *----------------------------------------------------------*/

void display_report()
{
    grand_total = 0;
    printf("\n\n\n");                   /* skip a few lines   */
    printf("\n        SALARY SUMMARY");
    printf("\n        ==============");

    for( x = 0; x <= 12; x++ )  /* for each month, including 0*/
    {
       month_total = 0;
       for( y = 0; y < ctr; y++ )
       {
           if( month[y] == x )
               month_total += income[y];
       }
       printf("\nTotal for month %d is %ld", x, month_total);
       grand_total += month_total;
    }
    printf("\n\nReport totals:");
    printf("\nTotal Income is %ld", grand_total);
    printf("\nAverage Income is %ld", grand_total/ctr );

    printf("\n\n* * * End of Report * * *\n");
}
/*----------------------------------------------------------------*
 * Function: continue_function()                                  *
 * Purpose:  This function asks the user if they wish to continue.*
 * Returns:  YES - if user wishes to continue                     *
 *           NO - if user wishes to quit                          *
 *----------------------------------------------------------------*/

int continue_function( void )
{
    printf("\n\nDo you wish to continue? (0=NO/1=YES): ");
    scanf( "%d", &x );

    while( x < 0 || x > 1 )
    {
        printf("\n%d is invalid!", x);
        printf("\nPlease enter 0 to Quit or 1 to Continue: ");
        scanf("%d", &x);
    }
    if(x == 0)
        return(NO);
    else
        return(YES);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -