Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.79 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <cstdio>
  4. #include <ctime>
  5. #include <stdio.h>
  6. using namespace std;
  7.  
  8. struct Struktura
  9. {
  10. int i;
  11. char c;
  12. float f;
  13. };
  14.  
  15. Struktura** losowanie(int N)
  16. {
  17. struct Struktura** tab = (struct Struktura**) malloc(N * sizeof(struct Struktura*));
  18. for (int i = 0; i < N; i++)
  19. {
  20. tab[i] = (struct Struktura*) malloc(sizeof(struct Struktura));
  21. tab[i]->c = rand() % ('S' - 'B' + 1) + 'B';
  22. tab[i]->f = 1000 + i;
  23. tab[i]->i = (rand() % 10001)-1000;
  24.  
  25. }
  26. return tab;
  27. };
  28. void sortowanie(int N, Struktura **tab)
  29. {
  30. int x = 0;
  31. for (int j = 0; j < N; j++)
  32. {
  33. x = 0;
  34. for (int i = 0; i < N - 1 - j; i++)
  35. {
  36. if (tab[i]->i > tab[i + 1]->i)
  37. {
  38. Struktura* tmp = tab[i];
  39. tab[i] = tab[i + 1];
  40. tab[i + 1] = tmp;
  41. x = 1;
  42. }
  43. }
  44. if (x != 1)
  45. {
  46. break;
  47. }
  48. }
  49.  
  50. };
  51. int zliczanie(int N, Struktura * *tab, char c)
  52. {
  53. int kek = 0;
  54. for (int i = 0; i < N; i++)
  55. {
  56. if (tab[i]->c == c)
  57. kek = kek + 1;
  58. }
  59. return kek;
  60. };
  61. void kasing(int N, Struktura **tab)
  62. {
  63. for (int i = 0; i < N; i++)
  64. {
  65. free(tab[i]);
  66. }
  67. free(tab);
  68. };
  69.  
  70. int main()
  71. {
  72. srand(time(NULL));
  73. FILE* fp;
  74. fp = new FILE;
  75. int N;
  76. char X;
  77. fopen_s(&fp,"inlab01.txt", "r");
  78. if (fp == NULL)
  79. return -1;
  80. fscanf_s(fp, "%d %c", &N, &X, &fp);
  81. fclose(fp);
  82.  
  83. clock_t begin, end;
  84. double time_spent;
  85. begin = clock();
  86. Struktura **xd = losowanie(N);
  87. sortowanie(N, xd);
  88. int ilosc = zliczanie(N, xd, X);
  89. for (int i = 0; i < 20; i++)
  90. {
  91. cout << "C: " << xd[i]->c << endl;
  92. cout << "I: " << xd[i]->i << endl;
  93. cout << "F: " << xd[i]->f << endl;
  94. }
  95. kasing(N, xd);
  96. end = clock();
  97.  
  98. time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
  99. cout << "Ilosc znakow: " << ilosc<<endl;
  100. cout << "Czas wykonania: " << time_spent;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement