From Łukasz Graczykowski
(Difference between revisions)
|
|
| (3 intermediate revisions not shown) |
| Line 27: |
Line 27: |
| | <br> | | <br> |
| | Na koniec wysyłamy program na mój adres e-mail: [mailto:lgraczyk@if.pw.edu.pl lgraczyk@if.pw.edu.pl] | | Na koniec wysyłamy program na mój adres e-mail: [mailto:lgraczyk@if.pw.edu.pl lgraczyk@if.pw.edu.pl] |
| | + | <!-- |
| | + | FILE *plik = fopen(nazwa_pliku,"r"); //otwarcie pliku |
| | + | if(!plik) //sprawdzy, czy sie otworzyl |
| | + | { |
| | + | printf("Nie moge odczytac pliku %s!\n",nazwa_pliku); |
| | + | return 0; |
| | + | } |
| | + | int rozmiar = 0; |
| | + | double wynik = 0; |
| | + | while(fscanf(plik,"%lf",&wynik) != EOF) |
| | + | { |
| | + | rozmiar++; |
| | + | } |
| | + | |
| | + | |
| | + | printf("Ilosc zawodnikow to: %d\n",rozmiar); |
| | + | double czas[rozmiar]; |
| | + | fclose(plik); |
| | + | |
| | + | FILE *plik2 = fopen(nazwa_pliku,"r"); //otwarcie pliku |
| | + | if(!plik2) //sprawdzy, czy sie otworzyl |
| | + | { |
| | + | printf("Nie moge odczytac pliku %s!\n",nazwa_pliku); |
| | + | return 0; |
| | + | } |
| | + | int i = 0; |
| | + | while(fscanf(plik2,"%lf",&wynik) != EOF) |
| | + | { |
| | + | czas[i] = wynik; |
| | + | i++; |
| | + | } |
| | + | fclose(plik2); |
| | + | --> |
Latest revision as of 19:02, 27 March 2017
Proszę napisać program, który wczyta do tablicy typu double wyniki pomiaru czasu uzyskane przez zawodników PZU Maratonu Warszawskiego 2016 (w minutach).
Następnie, po utworzeniu tablicy i jej posortowaniu (patrz Uwagi 1 i 2), użytkownikowi ukazuje się menu użytkownika, w którym do wyboru powinny być następujące opcje (menu wyświetla się za każdym razem po zrealizowaniu danej opcji):
- Wypisanie najlepszego czasu
- Wypisanie najgorszego czasu
- Wypisanie średniego czasu uzyskanego przez wszystkich zawodników
- Wypisanie zadanej liczby najlepszych wynikow (wymagana posortowana tablica)
- (Dodatkowo) Wypisanie zadanej liczby najgorszych wynikow (wymagana posortowana tablica)
- Zakończenie programu
Program powinien działać w pętli do momentu podania przez użytkownika opcji kończącej program.
Uwaga 1! Musimy dwa razy przeczytać plik tekstowy (najpierw by zliczyć ilość zawodników w celu zadeklarowania rozmiaru tablicy, następnie w celu jej wypełnienia).
Uwaga 2! Aby zrealizować wypisanie najlepszych i najgorszych wyników, musimy po wczytaniu tablicę posortować. Jak posortować tablicę? Pokazuje to poniższy przykład najprostszego algorytmu, tzw. "sortowanie bąbelkowe" (bubble sort):
Lista kroków (przykład dla n-elementowej tablicy):
K01: Dla j = 0,1,2,...,n-1: wykonuj K02
K02: Dla i = 0,1,2,...,n-1: jeśli tablica[i] > tablica[i+1], to zamień tablica[i] z tablica[i+1]
K03: Zakończ
Uwagi go stylu: Pamiętamy o wcięciach, nawiasach, i generalnie o uporządkowanym kodzie. Kod powinien być tak napisany, by był zrozumiały dla osoby go czytającej.
Na koniec wysyłamy program na mój adres e-mail: lgraczyk@if.pw.edu.pl