Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Lab 1 SDiZO.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <stdlib.h>
- #include <time.h>
- struct Struktura
- {
- int i;
- char c;
- float f;
- };
- Struktura** utworzTablice(int N)
- {
- srand(time(NULL));
- Struktura** tab = (Struktura**)malloc(N * sizeof(Struktura*));
- for (int i = 0; i < N; i++)
- {
- tab[i] = (Struktura*)malloc(N * sizeof(Struktura));
- tab[i]->i = rand() % 10001 - 1000;
- tab[i]->c = rand() % 25 + 66;
- tab[i]->f = 1000 + i;
- }
- return tab;
- }
- void sortowanieTablicy(Struktura **tab, int N)
- {
- bool nastSortowanie = false;
- for (int i = 0; i < N - 1; i++)
- {
- nastSortowanie = false;
- for (int k = 0; k < N - i - 1; k++)
- {
- if ((tab[k]->i) >(tab[k + 1]->i))
- {
- Struktura* temp;
- temp = tab[k];
- tab[k] = tab[k + 1];
- tab[k + 1] = temp;
- nastSortowanie = true;
- }
- }
- if (nastSortowanie == false) break;
- }
- }
- void wypiszTablice(Struktura **tab)
- {
- for (int i = 0; i < 20; i++)
- {
- printf("%u\n", tab[i]->i);
- printf("%u\n", tab[i]->c);
- printf("%u\n", tab[i]->f);
- }
- }
- int zliczanieZnaku(Struktura **tab, char znak, int N)
- {
- int licznik = 0;
- for (int i = 0; i < N; i++)
- {
- if (tab[i]->c == znak)
- licznik++;
- }
- return licznik;
- }
- void zlikwidujTablice(Struktura **tab, int N)
- {
- for (int i = 0; i < N; i++)
- {
- free(tab[i]);
- }
- free(tab);
- }
- int main()
- {
- clock_t begin, end;
- double time_spent;
- begin = clock();
- int N;
- char X;
- FILE* fp = fopen("inlab01.txt", "r");
- if (fp == NULL)
- return -1;
- fscanf_s(fp, "%d %c", &N, &X);
- fclose(fp);
- Struktura **tab = utworzTablice(N);
- sortowanieTablicy(&tab[0], N);
- wypiszTablice(&tab[0]);
- zliczanieZnaku(&tab[0], X, N);
- printf("Znak %c wystąpił w tablicy struktur %d razy.", X, zliczanieZnaku(&tab[0], X, N));
- zlikwidujTablice(&tab[0], N);
- end = clock();
- time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
- printf("Czas wykonania całego programu: %f sekund", time_spent);
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement