fork download
  1. #include <stdio.h>
  2. #include "queues.h"
  3. #include <stdbool.h>
  4. #include <stdlib.h>
  5.  
  6. //Category Queues
  7.  
  8. //Prototype Statements
  9. void fillQueues(QUEUE*, QUEUE*, QUEUE*, QUEUE*);
  10. void printQueues(QUEUE*, QUEUE*, QUEUE*, QUEUE*);
  11.  
  12. void printOneQueue(QUEUE* pQueue);
  13.  
  14. int main(void)
  15. {
  16. //Local Definitions
  17. QUEUE* q0to9;
  18. QUEUE* q10to19;
  19. QUEUE* q20to29;
  20. QUEUE* qOver29;
  21.  
  22. //Statements
  23. printf("Welcome to a demonstration of categorizing \n"
  24. " data. We generate 25 random numbers and then 'n"
  25. "group them into categories using queues. \n\n");
  26.  
  27. q0to9 = createQueue();
  28. q10to19 = createQueue();
  29. q20to29 = createQueue();
  30. qOver29 = createQueue();
  31.  
  32. fillQueues(q0to9, q10to19, q20to29, qOver29);
  33. printQueues(q0to9, q10to19, q20to29, qOver29);
  34.  
  35. return 0;
  36. }//main
  37.  
  38. //fillQueues
  39. void fillQueues(QUEUE* q0to9, QUEUE* q10to19,
  40. QUEUE* q20to29, QUEUE* qOver29)
  41. {
  42. //Local Definitions
  43. int category;
  44. int item;
  45. int* dataPtr;
  46.  
  47. //Statements
  48. printf("Categorizing data: \n");
  49. srand(79);
  50.  
  51. for (int i = 1; i <= 25; i++)
  52. {
  53. if (!(dataPtr = (int*)malloc(sizeof(int))))
  54. printf("Overflow in fillQueues\a\n"),
  55. exit(100);
  56.  
  57. *dataPtr = item = rand() % 51;
  58. category = item / 10;
  59. printf("%3d", item);
  60. if (!(i % 11))
  61. //Start new line when line full
  62. printf("\n");
  63.  
  64. switch (category)
  65. {
  66. case 0: enqueue(q0to9, dataPtr);
  67. break;
  68. case 1: enqueue(q10to19, dataPtr);
  69. break;
  70. case 2:enqueue(q20to29, dataPtr);
  71. break;
  72. default: enqueue(qOver29, dataPtr);
  73. break;
  74. }//switch
  75. }//for
  76. printf("\nEnd of data categorization\n\n");
  77. return;
  78. }//fillQueues
  79.  
  80. //printQueues
  81. void printQueues(QUEUE* q0to9, QUEUE* q10to19,
  82. QUEUE* q20to29, QUEUE* qOver29)
  83. {
  84. //Statements
  85. printf("Data 0.. 9:");
  86. printOneQueue(q0to9);
  87.  
  88. printf("Data 10..19:");
  89. printOneQueue(q10to19);
  90.  
  91. printf("Data 20..29:");
  92. printOneQueue(q20to29);
  93.  
  94. printf("Data over 29:");
  95. printOneQueue(qOver29);
  96.  
  97. return;
  98. }//printQueues
  99.  
  100. //printOneQueue
  101. void printOneQueue(QUEUE* pQueue)
  102. {
  103. //Local Definitions
  104. int lineCount;
  105. int* dataPtr;
  106.  
  107. //Statements
  108. lineCount = 0;
  109. while (!emptyQueue(pQueue))
  110. {
  111. dequeue(pQueue, (void*)&dataPtr);
  112. if (lineCount++ >= 10)
  113. {
  114. lineCount = 1;
  115. printf("\n ");
  116. }//if
  117. printf("%3d ", *dataPtr);
  118. }//while !emptyQueue
  119. printf("\n");
  120.  
  121. return;
  122. }//prinOneQueue
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.c:2:10: fatal error: queues.h: No such file or directory
 #include "queues.h"
          ^~~~~~~~~~
compilation terminated.
stdout
Standard output is empty