Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stdbool.h>
  4. typedef struct data { //struktura punkow
  5. int time;
  6. char* number=malloc(15*sizeof(char)); //tego jeszcze nie wiem czy trzeba alokowac
  7. } data;
  8.  
  9. typedef struct queue {
  10. int start, end, size;
  11. data *elements;
  12. } queue;
  13.  
  14. queue *new_queue(int size)
  15. {
  16. queue *q = (queue *) malloc(sizeof(queue));
  17. q->start=0;
  18. q->end=0;
  19. //q->counter=0;
  20. q->size=size;
  21. q->elements=(data *) malloc(size*sizeof(data));
  22. return q;
  23. }
  24. void put(queue *q, int time, char* number){
  25. if (q->end+1 < q->size) //max tyle ile punktow w tablicy
  26. { q->end++; //poszzerzamy kolejke
  27. //q->counter++;
  28. q->elements[q->end].time=time;
  29. q->elements[q->end].number=number;
  30. }
  31. else //napoczatek dodajemy
  32. {
  33. q->end=0;
  34. q->elements[q->end].time=time;
  35. q->elements[q->end].number=number;
  36. }
  37. }
  38. queue *get(queue *q) { //pobieramy punkt z poczatku
  39. if (q->start+1 < q->size)
  40. {
  41. //q->counter--;
  42. return &(q->elements[++q->start]); //adres, bo do wskaznika
  43. }
  44. else //przechodzimy na poczatek
  45. {
  46. q->start=0;
  47. return &(q->elements[q->start]);
  48. }
  49. }
  50.  
  51. void do_get_print(queue* q, int time)
  52. {
  53. data* result = get(q);
  54. int time_result= time - result.time;
  55. printf("Wynik: %s, %d\n", data.number, time_result);
  56.  
  57. }
  58. void delete_queue(queue *q)
  59. {
  60. free (q->elements);
  61. free (q);
  62. }
  63. int main()
  64. {
  65. int n, time;
  66. char type ;
  67. char* number = malloc(15*sizeof(char)); //tabica na numer
  68. for(int i=0; i<15; i++) number[i] = '\0';
  69. scanf(" %d", &n);
  70. queue* call_c= new_queue(n); //ini
  71. for (int i=0; i< n; i++)
  72. {
  73. stanf(" %s", &type );
  74. if(type == 'a')
  75. {
  76. scnaf(" %d, %s", &time, number);
  77. put(call_c, time,number);
  78.  
  79. }
  80. else
  81. {
  82. scnaf(" %d", &time);
  83. do_get_print(call_c,time);
  84. }
  85. }
  86. delete_queue(call_c);
  87. free(number);
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement