home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 3 / 3973 / cost.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-05  |  1.3 KB  |  70 lines

  1. /************** Find out the cost of stuff ***************/
  2. float big_cost;
  3.  
  4. struct    grouprec {
  5.     int number;
  6.     long tot_readers;
  7.     int samp_readers;
  8.     char *propagation;
  9.     int traffic_msg;
  10.     float traffic_kb;
  11.     char *xpost;
  12.     float cost;
  13.     char *share;
  14.     char *name;
  15. };
  16.  
  17. #define MAX_NO    1000
  18.  
  19. void initrec(recptr)
  20. struct grouprec *recptr;
  21. {
  22.     recptr->propagation    = (char *) malloc(7);
  23.     recptr->xpost        = (char *) malloc(5);
  24.     recptr->share        = (char *) malloc(7);
  25.     recptr->name        = (char *) malloc(50);
  26.     
  27. }
  28. void readit(Group)
  29. struct grouprec *Group;
  30. {
  31.     char *buffer;
  32.     int counter;
  33.     
  34.     for(counter = 0; counter < MAX_NO; ) {
  35.     
  36.         buffer = (char *) malloc(255);
  37.         gets(buffer);
  38.         if(buffer[0] != '*') {
  39.             sscanf(buffer, "%d %d %d %s %d %f %s %f %s %s",
  40.                 &Group[counter].number,
  41.                 &Group[counter].tot_readers,
  42.                 &Group[counter].samp_readers,
  43.                 Group[counter].propagation,
  44.                 &Group[counter].traffic_msg,
  45.                 &Group[counter].traffic_kb,
  46.                 Group[counter].xpost,
  47.                 &Group[counter].cost,
  48.                 Group[counter].share,
  49.                 Group[counter].name);
  50.             big_cost += Group[counter].cost * Group[counter].tot_readers;
  51.             counter++;
  52.         }
  53.     }
  54. }
  55.  
  56. int main()
  57. {
  58.     struct grouprec Group[MAX_NO];    /* This can handle MAX_NO groups */
  59.     int counter;
  60.     big_cost = 0;
  61.     
  62.     for(counter = 0; counter < MAX_NO; counter++) { 
  63.         initrec(&Group[counter]);
  64.     }
  65.  
  66.     readit(Group);
  67.     printf("Total Cost: $%f\n", big_cost);
  68.     
  69. }
  70.