C++ NALEŻY WYKONAĆ ZADANIE PONIŻEJ, WYSTARCZĄ PROSTE FUNKCJE TYPU TABLICE, PĘTLA

C NALEŻY WYKONAĆ ZADANIE PONIŻEJ WYSTARCZĄ PROSTE FUNKCJE TYPU TABLICE PĘTLA class=
C NALEŻY WYKONAĆ ZADANIE PONIŻEJ WYSTARCZĄ PROSTE FUNKCJE TYPU TABLICE PĘTLA class=

Odpowiedź :

Odpowiedź

W załączniku. Najprościej jak tylko się dało... Wynik w drugim załączniku.

  • Konsekwentnie używałam auto. Wprawdzie w przypadku pętli gdzie zmienna jest liczbą całkowitą (  int, a właściwie prawidłowo size_t  ) użycie auto pozornie nie wydaje się czegokolwiek upraszczać, jednak gdzie indziej różnica jest wyraźnie widoczna np.                                const auto&    zamiast    pair<string, daneMiesięczne>.
  • W obu przypadkach ( sukces przy otwarciu pliku wynik5.txt i brak sukcesu ) program kończy się z  return 0.  Nie wpisywałam return 0, ponieważ kompilator zawsze automatycznie  return 0  wstawia. Niemożliwość zapisu pliku wynikowego jest przewidzianym zdarzeniem, dlatego tam też jest domyślnie return 0.
  • Jest możliwość uzyskania polskich liter również używając kompilatora MSVC (Visual Studio), ale pojawiają się wtedy inne ograniczenia. Możesz porównać gdy popatrzysz na moje późniejsze rozwiązanie tego samego zadania (rozwiązałam je nieco inaczej)                                      →  brainly.pl/zadanie/21185881

Wyjaśnienia

  • Używając bieżących wersji GCC program zadziała bez żadnych zmian. Można usunąć pierwszą linię  ( #define )  ponieważ jest ona w przypadku GCC zbędna. Bieżąca wersja oznacza GCC 10.1 wydany 7 maja 2020 r. lub nowszy. Najnowszą wersją jest GCC 11.2 z 28 lipca 2021 r.
  • Używając bieżących wersji kompilatora clang kod, który podałam, zadziała bez żadnych zmian. Można usunąć pierwsza linię ( #define ) bo jest ona w przypadku kompilatora clang zbędna.
  • Używając Visual Studio należy w pierwszych dwóch wywołaniach  fprintf()  zamienić polskie znaki na odpowiadające im litery ASCII, inaczej w pliku wynikowym będą w miejscach polskich liter znaki zapytania.
  • Używając starszych wersji GCC  –  np. Code::Blocks używa starszych wersji GCC !  –  należy w nazwach zmiennych zamienić polskie znaki na odpowiadające im litery ASCII, inaczej nie będzie można skompilować. Można usunąć pierwszą linię  ( #define )  ponieważ jest ona w przypadku GCC zbędna.
Zobacz obrazek 0AB
Zobacz obrazek 0AB