fork download
  1. #include <stdio.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct {
  6. int factoryNumber;
  7. int candyProduced;
  8. int candyConsumed;
  9. double minDelay;
  10. double avgDelay;
  11. double maxDelay;
  12. } factoryStats;
  13.  
  14. factoryStats *factoryStatsArray;
  15. int NUM_FACTORIES = 0;
  16.  
  17. void stats_init (int num_producers) {
  18. factoryStatsArray = malloc(sizeof(factoryStats) * num_producers);
  19. NUM_FACTORIES = num_producers;
  20. }
  21. void stats_cleanup (void) {
  22. free(factoryStatsArray);
  23. }
  24. void stats_record_produced (int factory_number) {
  25. factoryStatsArray[factory_number].candyProduced++;
  26. }
  27. void stats_record_consumed (int producer_number, double delay_in_ms) {
  28. factoryStatsArray[producer_number].candyConsumed++;
  29. if (factoryStatsArray[producer_number].minDelay == 0) {
  30. factoryStatsArray[producer_number].minDelay = delay_in_ms;
  31. } else {
  32. if (factoryStatsArray[producer_number].minDelay > delay_in_ms) {
  33. factoryStatsArray[producer_number].minDelay = delay_in_ms;
  34. }
  35. }
  36. if (factoryStatsArray[producer_number].maxDelay == 0) {
  37. factoryStatsArray[producer_number].maxDelay = delay_in_ms;
  38. } else {
  39. if (factoryStatsArray[producer_number].maxDelay < delay_in_ms) {
  40. factoryStatsArray[producer_number].maxDelay = delay_in_ms;
  41. }
  42. }
  43. factoryStatsArray[producer_number].avgDelay+= delay_in_ms;
  44.  
  45. }
  46. void stats_display(void) {
  47. printf("%8s%10s%10s%10s%10s%10s\n", "Factory#", "#Made", "#Eaten", "Min Delay[ms]", "Avg Delay[ms]", "Max Delay[ms]");
  48. for (int i = 0; i < NUM_FACTORIES; i++) {
  49. printf("%8d%8d%8d%10.5f%10.5f%10.5f",
  50. factoryStatsArray[i].factoryNumber, factoryStatsArray[i].candyProduced,
  51. factoryStatsArray[i].candyConsumed, factoryStatsArray[i].minDelay,
  52. factoryStatsArray[i].avgDelay/factoryStatsArray[i].candyConsumed,
  53. factoryStatsArray[i].maxDelay);
  54.  
  55. }
  56. }
  57. int main(void) {
  58. // your code goes here
  59. return 0;
  60. }
  61.  
Success #stdin #stdout 0s 2048KB
stdin
Standard input is empty
stdout
Standard output is empty