Program pobiera z pliku ilość struktur i je tworzy, ma wypisać 20 z nich i je posortować, mam już wszystko ale nie sortuje mi ich :/
#include "pch.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;
struct Struktura
{
int a;
char b;
float c;
};
Struktura** losuj(int N) {
struct Struktura** tab = (struct Struktura**) malloc(N * sizeof(struct Struktura*));
int flag = 0;
for (int i = 0; i < N; i++)
{
tab[i] = (struct Struktura*) malloc(sizeof(struct Struktura));
tab[i]->a = ((rand() % (-1000 - 9000)) + -1000);
tab[i]->b = ((rand() % ('b' - 's')) + 'b');
tab[i]->c = 1000 + (rand() % (1-N));
}
return tab;
}
void toString(Struktura s)
{
cout << s.a << " " << s.b << " " << s.c << endl;
}
void toString(Struktura* s)
{
cout << s->a << " " << s->b << " " << s->c << endl;
}
void toString(Struktura** tab, int N)
{
for (int i = 0; i < N; i++) {
toString(tab[i]);
}
}
void sort(struct Struktura** tab, int N)
{
for (int i = 1; i < N; i++)
{
int flag = 0;
for (int j = 1; j < N ; j++)
{
if (tab[j] > tab[j])
swap(tab[j], tab[j]);
flag = 1;
}
if (flag = 0) break;
}
}
int main()
{
/srand(time(NULL));/
clock_t begin, end;
double time_spent;
begin = clock();
/* here, do your time-consuming job */
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
int N;
char X;
FILE* fp = fopen("inlab01.txt", "r");
if (fp == NULL)
return -1;
fscanf(fp, "%d %c", &N, &X);
fclose(fp);
struct Struktura** tab = (struct Struktura**) malloc(N * sizeof(struct Struktura*));
sort(tab, N);
tab = losuj(N);
sort(tab, N);
toString(tab, 20);
sort(tab, N);
}