Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 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. /*
  27. for (int j = 0; j < N; j++)
  28. {
  29.  
  30. for (int k = 0; k < N - 1; k++)
  31. {
  32. while (k + j != N)
  33. {
  34. if (tab[k + j]->f = tab[k+1]->f)
  35. tab[k]->f = (rand() % 8);
  36. }
  37. }
  38. }
  39. */
  40. return tab;
  41. };
  42. void sortowanie(int N, Struktura **tab)
  43. {
  44. int x = 0;
  45. for (int j = 0; j < N; j++)
  46. {
  47. x = 0;
  48. for (int i = 0; i < N - 1 - j; i++)
  49. {
  50. if (tab[i]->i > tab[i + 1]->i)
  51. {
  52. Struktura* tmp = tab[i];
  53. tab[i] = tab[i + 1];
  54. tab[i + 1] = tmp;
  55. x = 1;
  56. }
  57. }
  58. if (x != 1)
  59. {
  60. break;
  61. }
  62. }
  63.  
  64. };
  65. int zliczanie(int N, Struktura * *tab, char c)
  66. {
  67. int kek = 0;
  68. for (int i = 0; i < N; i++)
  69. {
  70. if (tab[i]->c == c)
  71. kek = kek + 1;
  72. }
  73. return kek;
  74. };
  75. void kasing(int N, Struktura **tab)
  76. {
  77. for (int i = 0; i < N; i++)
  78. {
  79. free(tab[i]);
  80. }
  81. free(tab);
  82. };
  83.  
  84. int main()
  85. {
  86. srand(time(NULL));
  87. FILE* fp;
  88. fp = new FILE;
  89. int N;
  90. char X;
  91. fopen_s(&fp,"inlab01.txt", "r");
  92. if (fp == NULL)
  93. return -1;
  94. fscanf_s(fp, "%d %c", &N, &X, &fp);
  95. fclose(fp);
  96.  
  97. clock_t begin, end;
  98. double time_spent;
  99. begin = clock();
  100. Struktura **xd = losowanie(N);
  101. sortowanie(N, xd);
  102. int ilosc = zliczanie(N, xd, X);
  103. for (int i = 0; i < 20; i++)
  104. {
  105. cout << "C: " << xd[i]->c << endl;
  106. cout << "I: " << xd[i]->i << endl;
  107. cout << "F: " << xd[i]->f << endl;
  108. }
  109. kasing(N, xd);
  110. end = clock();
  111.  
  112. time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
  113. cout << "Ilosc znakow: " << ilosc<<endl;
  114. cout << "Czas wykonania: " << time_spent;
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement