VEndymionV

Untitled

Oct 5th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.08 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "time.h"
  4.  
  5. typedef struct struktura
  6. {
  7.     int i;
  8.     char c;
  9.     float f;
  10. } Struktura;
  11.  
  12. Struktura **losowanie(int N) // N - ile struktur utworzyć
  13. {
  14.     //////////////////// Alokacja pamięci na wskaźniki do struktur ////////////////////
  15.     Struktura **tab_s = (Struktura**) malloc(N * sizeof(Struktura*));
  16.     //////////////////// Liczby losowe ////////////////////////////////////////////////
  17.     int zarodek;
  18.     time_t czas;
  19.     zarodek = time(&czas);
  20.     srand(zarodek);
  21.     //////////////////// Wypełnianie struktur /////////////////////////////////////////
  22.     for (int i = 0; i < N; i++)
  23.     {
  24.         int losowy_int = (int) ((rand() % 10000) - 1000);
  25.         char losowy_char = (char) (rand() % 22) + 66;
  26.         float losowy_float = (float) (1000 + (i + 1));
  27.         tab_s[i] = (Struktura*)malloc(sizeof(Struktura));
  28.         tab_s[i]->i = losowy_int;
  29.         tab_s[i]->c = losowy_char;
  30.         tab_s[i]->f = losowy_float;
  31.         //printf("%d. 1.%d 2.%c 3.%f \n", i, tab_s[i]->i, tab_s[i]->c, tab_s[i]->f);
  32.     }
  33.     return tab_s;
  34. }
  35.  
  36. void kasowanie(Struktura **tab_s, int N)
  37. {
  38.     for (int i = 0; i < N; i++)
  39.     {
  40.         free(tab_s[i]);
  41.     }
  42.     free(tab_s);
  43. }
  44.  
  45. void sortowanie(Struktura **tab_s, int N)
  46. {
  47.     Struktura *temp = (Struktura*)malloc(sizeof(Struktura));
  48.     for (int i = 0; i < N; i++)
  49.     {
  50.         for (int j = 0; j < N; j++)
  51.         {
  52.             if (tab_s[j]->i > tab_s[i]->i)
  53.             {
  54.                 temp = tab_s[i];
  55.                 tab_s[i] = tab_s[j];
  56.                 tab_s[j] = temp;
  57.             }
  58.         }  
  59.     }
  60.     //free(temp);
  61. }
  62.  
  63. int zliczanie_znakow(Struktura **tab_s, int N, char znak)
  64. {
  65.     int ilosc_wystapien = 0;
  66.     for (int i = 0; i < N; i++)
  67.     {
  68.         if (tab_s[i]->c == 'znak') ilosc_wystapien++;
  69.     }
  70.     return ilosc_wystapien;
  71. }
  72.  
  73. int main()
  74. {
  75.     FILE *plik = fopen("inlab01.txt", "w");
  76.     int N = 5;
  77.     Struktura **tab_s = losowanie(N);
  78.     printf("MAIN\n");
  79.  
  80.     for (int i = 0; i < N; i++)
  81.     {
  82.         printf("%d. 1.%d 2.%c 3.%f\n",i, tab_s[i]->i, tab_s[i]->c, tab_s[i]->f);
  83.     }
  84.  
  85.     sortowanie(tab_s, N);
  86.  
  87.     printf("SORTOWANIE\n");
  88.  
  89.     for (int i = 0; i < N; i++)
  90.     {
  91.         printf("%d. 1.%d 2.%c 3.%f\n", i, tab_s[i]->i, tab_s[i]->c, tab_s[i]->f);
  92.     }
  93.  
  94.     system("pause");
  95. }
Advertisement
Add Comment
Please, Sign In to add comment