Program służy do pobrania z pliku struktur i posortowaniu ich według salda. Sortowanie idzie bez problemu, tylko nie potrafię połączyć wartości salda z resztą struktury.
#include<stdio.h>
struct state {
char nazwisko[50];
char imie[50];
char pesel[50];
char nr[27];
float liczba;
} st[500];
int main()
{
int h[500];
float w[500];
int x[500];
int i, n;
printf("Ile wynikow:");
scanf("%d", &n);
for (i = 0; i < n; i++)
{
FILE *plik;
plik = fopen("I5X3S1_j.txt","r");
if( plik == NULL)
printf("Nie moge znalezc bazy :(");
else
{
printf("Baza wczytana pomyslnie!\n\n");
for (i=0; i<n; i++)
{
fscanf(plik,"%s %s %s %s %f",st[i].nazwisko, st[i].imie, st[i].pesel, &st[i].nr, &st[i].liczba);
w[i]= st[i].liczba;
}
fclose(plik);
}
for (i=0; i<n; i++)
{
printf("Nazwisko: %s\nImie: %s\nPESEL: %s\nNr konta: %s\nSaldo: %f\n\n",st[i].nazwisko, st[i].imie, st[i].pesel, st[i].nr, st[i].liczba);
}
{
int c, d, position, swap;
for(c=0 ; c< (n-1) ; c++)
{
for ( c = 0 ; c < ( n - 1 ) ; c++ )
{
position = c;
for ( d = c + 1 ; d < n ; d++ )
{
if ( w[position] > w[d] )
position = d;
}
if ( position != c )
{
swap = w[c];
w[c] = w[position];
w[position] = swap;
}
}
}
printf("Posortowane:\n");
for ( c = 0 ; c < n ; c++ )
printf("%f\n", w[c]);
}
}
return (0);
}