• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

zadanie maturalne

Object Storage Arubacloud
0 głosów
789 wizyt
pytanie zadane 26 stycznia 2017 w C i C++ przez Matt987 Użytkownik (800 p.)

Siemka może mi ktoś wytłumaczyć dlaczego ten algorytm mi źle działa? Treść zadania

Mateusz cały rok przygotowuje się do zawodów sportowych w skoku w dal. Codziennie trenuje, a wynik – długość najdłuższego skoku podaną w centymetrach – zapisuje w pliku tekstowym dziennik.txt. W pliku tym znajduje się 310 liczb odpowiadających długościom najlepszych skoków Mateusza w kolejnych dniach treningowych. Każda liczba jest zapisana w osobnym wierszu.

Przykład: 436 571 569 435

Pozytywną serią treningową Mateusz nazywa każdy ciąg kolejnych dni treningowych, w czasie których uzyskuje on każdego następnego dnia treningu lepszy rezultat niż dnia poprzedniego i którego to ciągu nie można przedłużyć (jest to ostatni zanotowany wynik albo wynik z następnego dnia jest gorszy).

Przykład: 478 475 470 480 481 481 475 477 480 482 470

W tym przypadku najdłuższa pozytywna seria treningowa (podkreślona) trwała 4 dni, a Mateusz w jej trakcie poprawił swój wynik o 482–475=7 centymetrów. W wybranym przez siebie języku programowania napisz program, za pomocą którego uzyskasz odpowiedzi na poniższe pytania.

Zadanie 5.1. Ile Mateusz miał pozytywnych serii treningowych dłuższych niż 3 dni?

#include <iostream>
#include <fstream>

using namespace std;


int main()
{
    int tab[310],a=0;
    ifstream odczyt("dziennik.txt");
    while(!odczyt.eof())
    {
        odczyt>>tab[a];
        a++;
    }
    int b=a+1,i=1,ilosc_serii=0;
    a=0;

while(a+1<=310)
{
   if(tab[a]<tab[a+1])
   {
      a++;

      i++;
   }
   else
   {
       a++;

       if(i>=3)
    {
        ilosc_serii++;
        i=1;
    }
   }

        }

cout<<ilosc_serii<<endl;

    return 0;
}

 

1 odpowiedź

0 głosów
odpowiedź 26 stycznia 2017 przez niezalogowany
if(i>=3) //poprawnie: if(i>3)

Pozytywne serie treningowe mają być dłuższe, a nie dłuższe lub równe.

komentarz 26 stycznia 2017 przez Matt987 Użytkownik (800 p.)
Rzeczywiście, sprawdziłem wszystko wydaje się być teraz ok oprócz odpowiedzi. Mi wychodzi 45 serii, a w odpowiedzi jest 14
komentarz 27 stycznia 2017 przez Matt987 Użytkownik (800 p.)

Dobra znalazłem błąd poprawiłem i wychodzi 11 a nie 14 Dlaczego?

#include <iostream>
#include <fstream>

using namespace std;


int main()
{
    int tab[310],a=0;
    ifstream odczyt("dziennik.txt");
    while(!odczyt.eof())
    {
        odczyt>>tab[a];
        a++;
    }
    int b=a+1,i=1,ilosc_serii=0;
    a=0;

while(a+1<=310)
{
   if(tab[a]<tab[a+1])
   {
      a++;

      i++;
   }
   else
   {
 a++;
       if(i>3)
    {
        ilosc_serii++;
        i=1;
    }
    i=1;
   }

        }

cout<<ilosc_serii<<endl;

    return 0;
}

 

komentarz 27 stycznia 2017 przez niezalogowany
Hm, zrobiłem zadanie na własną rękę, bo twój kod jest dla mnie prawie nieczytelny. Również otrzymuje 11. Jesteś pewien co do wyniku?
komentarz 27 stycznia 2017 przez Matt987 Użytkownik (800 p.)
Skonsultowałem się z kilkoma innymi osobami, wszyscy mieli 11 w wyniku, natomiast odpowiedź wynosi 14, być może to pomyłka twórców. Tu są odpowiedzi:

http://d.polskatimes.pl/k/r/1/34/ee/54943405d6d74_z.pdf

Podobne pytania

0 głosów
3 odpowiedzi 530 wizyt
pytanie zadane 21 sierpnia 2016 w C i C++ przez kkiermasz Użytkownik (680 p.)
0 głosów
2 odpowiedzi 965 wizyt
+1 głos
1 odpowiedź 3,299 wizyt

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...