Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. // Lab 1 SDiZO.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <stdlib.h>
  6. #include <time.h>
  7.  
  8. struct Struktura
  9. {
  10. int i;
  11. char c;
  12. float f;
  13. };
  14.  
  15. Struktura** utworzTablice(int N)
  16. {
  17. srand(time(NULL));
  18.  
  19. Struktura** tab = (Struktura**)malloc(N * sizeof(Struktura*));
  20. for (int i = 0; i < N; i++)
  21. {
  22. tab[i] = (Struktura*)malloc(N * sizeof(Struktura));
  23. tab[i]->i = rand() % 10001 - 1000;
  24. tab[i]->c = rand() % 25 + 66;
  25. tab[i]->f = 1000 + i;
  26. }
  27. return tab;
  28. }
  29.  
  30. void sortowanieTablicy(Struktura **tab, int N)
  31. {
  32. bool nastSortowanie = false;
  33. for (int i = 0; i < N - 1; i++)
  34. {
  35. nastSortowanie = false;
  36. for (int k = 0; k < N - i - 1; k++)
  37. {
  38. if ((tab[k]->i) >(tab[k + 1]->i))
  39. {
  40. Struktura* temp;
  41. temp = tab[k];
  42. tab[k] = tab[k + 1];
  43. tab[k + 1] = temp;
  44. nastSortowanie = true;
  45. }
  46. }
  47. if (nastSortowanie == false) break;
  48. }
  49. }
  50.  
  51. void wypiszTablice(Struktura **tab)
  52. {
  53. for (int i = 0; i < 20; i++)
  54. {
  55. printf("%u\n", tab[i]->i);
  56. printf("%u\n", tab[i]->c);
  57. printf("%u\n", tab[i]->f);
  58. }
  59. }
  60.  
  61. int zliczanieZnaku(Struktura **tab, char znak, int N)
  62. {
  63. int licznik = 0;
  64. for (int i = 0; i < N; i++)
  65. {
  66. if (tab[i]->c == znak)
  67. licznik++;
  68. }
  69.  
  70. return licznik;
  71. }
  72.  
  73. void zlikwidujTablice(Struktura **tab, int N)
  74. {
  75. for (int i = 0; i < N; i++)
  76. {
  77. free(tab[i]);
  78. }
  79. free(tab);
  80. }
  81.  
  82. int main()
  83. {
  84. clock_t begin, end;
  85. double time_spent;
  86. begin = clock();
  87.  
  88.  
  89. int N;
  90. char X;
  91. FILE* fp = fopen("inlab01.txt", "r");
  92. if (fp == NULL)
  93. return -1;
  94. fscanf_s(fp, "%d %c", &N, &X);
  95. fclose(fp);
  96.  
  97. Struktura **tab = utworzTablice(N);
  98.  
  99. sortowanieTablicy(&tab[0], N);
  100. wypiszTablice(&tab[0]);
  101.  
  102. zliczanieZnaku(&tab[0], X, N);
  103. printf("Znak %c wystąpił w tablicy struktur %d razy.", X, zliczanieZnaku(&tab[0], X, N));
  104. zlikwidujTablice(&tab[0], N);
  105.  
  106. end = clock();
  107. time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
  108.  
  109. printf("Czas wykonania całego programu: %f sekund", time_spent);
  110.  
  111. getchar();
  112. return 0;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement