Witam, mam do napisania program sortujący linie tekstu wzgledem malejacej wartosci kodu( max 80 znakow , max 50 wierszy ). Początkowo zrobilem go w sposob wczytujący plik tekstowy lecz wykladowca zażyczył sobie na ręczne wprowadzenie tekstu. Mam z tym lekki problem gdyż za każdym razem albo wyskakują błędy lub program przestaje działać. Poniżej jest jedna funkcja programu którą musze zmodyfikować, jestem początkującym więc prosze o wyrozumialość. Podobno sam początek wymaga zmiany a reszta funkcji może pozostać. Prosze o pomoc :(
#include <stdio.h>
#include <string.h>
FILE *wczytaj; //dla funkcji wczytujacych
typedef struct wiersz //zadefiniowanie struktury
{
char slowo[81];
int dlugosc;
double wartosc_srednia;
};
struct wiersz tablica[50];
struct wiersz tymczasowa; // pomocnicza w sortowaniu
//Odczytywanie z pliku
int odczyt_z_pliku()
{
int i,j=0, ile=0;
char bufor[81];
double suma;
wczytaj = fopen("text.txt", "r");
if (wczytaj == NULL)
printf("Blad otwarcia pliku\n\n");
else
{
while (fgets (bufor, 81, wczytaj))//obliczenie sredniej wartosci kodu dla każdego wiersza.
{
suma=0;
ile++; // ilosc wierszu
strcpy(tablica[j].slowo, bufor); //przypisanie znakow z bufora do struktury
tablica[j].dlugosc=strlen(bufor); // przypisanie ilosci znakow strukturze
for(i=0; i< tablica[j].dlugosc; i++)
{
if(bufor[i]!='\n' && bufor[i]!='\0') //dla prawidłowej ilosci znakow
suma+=(int) bufor[i];
}
tablica[j].wartosc_srednia=(suma/(tablica[j].dlugosc-1)); // przypisanie strukturze wartscoi sredniej kodu w wierszu
j++;
}
printf("Plik zostal wczytany\n\n");
}
fclose(wczytaj);
return ile;
}