Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdio.h"
- #include "stdlib.h"
- #include "time.h"
- typedef struct struktura
- {
- int i;
- char c;
- float f;
- } Struktura;
- Struktura **losowanie(int N) // N - ile struktur utworzyć
- {
- //////////////////// Alokacja pamięci na wskaźniki do struktur ////////////////////
- Struktura **tab_s = (Struktura**) malloc(N * sizeof(Struktura*));
- //////////////////// Liczby losowe ////////////////////////////////////////////////
- int zarodek;
- time_t czas;
- zarodek = time(&czas);
- srand(zarodek);
- //////////////////// Wypełnianie struktur /////////////////////////////////////////
- for (int i = 0; i < N; i++)
- {
- int losowy_int = (int) ((rand() % 10000) - 1000);
- char losowy_char = (char) (rand() % 22) + 66;
- float losowy_float = (float) (1000 + (i + 1));
- tab_s[i] = (Struktura*)malloc(sizeof(Struktura));
- tab_s[i]->i = losowy_int;
- tab_s[i]->c = losowy_char;
- tab_s[i]->f = losowy_float;
- //printf("%d. 1.%d 2.%c 3.%f \n", i, tab_s[i]->i, tab_s[i]->c, tab_s[i]->f);
- }
- return tab_s;
- }
- void kasowanie(Struktura **tab_s, int N)
- {
- for (int i = 0; i < N; i++)
- {
- free(tab_s[i]);
- }
- free(tab_s);
- }
- void sortowanie(Struktura **tab_s, int N)
- {
- Struktura *temp = (Struktura*)malloc(sizeof(Struktura));
- for (int i = 0; i < N; i++)
- {
- for (int j = 0; j < N; j++)
- {
- if (tab_s[j]->i > tab_s[i]->i)
- {
- temp = tab_s[i];
- tab_s[i] = tab_s[j];
- tab_s[j] = temp;
- }
- }
- }
- //free(temp);
- }
- int zliczanie_znakow(Struktura **tab_s, int N, char znak)
- {
- int ilosc_wystapien = 0;
- for (int i = 0; i < N; i++)
- {
- if (tab_s[i]->c == 'znak') ilosc_wystapien++;
- }
- return ilosc_wystapien;
- }
- int main()
- {
- FILE *plik = fopen("inlab01.txt", "w");
- int N = 5;
- Struktura **tab_s = losowanie(N);
- printf("MAIN\n");
- for (int i = 0; i < N; i++)
- {
- printf("%d. 1.%d 2.%c 3.%f\n",i, tab_s[i]->i, tab_s[i]->c, tab_s[i]->f);
- }
- sortowanie(tab_s, N);
- printf("SORTOWANIE\n");
- for (int i = 0; i < N; i++)
- {
- printf("%d. 1.%d 2.%c 3.%f\n", i, tab_s[i]->i, tab_s[i]->c, tab_s[i]->f);
- }
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment