Witam mam takie zadanie do napisania:
Wczytać plik "data.txt" do tablicy alokowanej dynamicznie. W pierwszym wierszu pliku jest liczba elementów N, a w kolejnych wierszach jest N liczb zmiennoprzecinkowych. Po wczytaniu, tablicę posortować, a następnie zwrócić środkowy element.
Napisałem kod, który wypisuje mi złe liczby niż mam w pliku (dodałem załącznik)
#include<stdio.h>
#include<conio.h>
float a[1000000];
void sortuj(int i_el)
{
int zmiana=0, i;
float temp;
do
{
zmiana=0;
for(i=1; i<i_el; i++)if(a[i-1]>a[i])
{
temp=a[i];
a[i]=a[i-1];
a[i-1]=temp;
zmiana++;
}
}
while(zmiana>0);
}
int main()
{
FILE *plik_we;
FILE *plik_wy;
int p;
plik_we=fopen("data.txt","r");
p=0;
printf("Tablica zaladowana:\n");
while(!feof(plik_we))
{
fscanf(plik_we,"%e", &a[p]);
printf("\n");
printf("%f \n",a[p]);
p++;
}
fclose(plik_we);
plik_wy=fopen("wynikipos.txt","w");
sortuj(1000000);
printf("Tablica posortowana i zapisana do pliku \n");
for(p=0; p<1000000; p++)fprintf(plik_wy,"%e \n",a[p]);
fclose(plik_wy);
getch();
}