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

Zadanie maturalne - programowanie (trójki liczb)

Object Storage Arubacloud
0 głosów
538 wizyt
pytanie zadane 26 grudnia 2018 w C i C++ przez malaameba Początkujący (310 p.)

Dzień dobry, 

napisałam program z matury z informatyki z 2017 roku (stara formuła, poziom podstawowy). Odpowiedź do podpunktu a) wychodzi mi 140. Prawidłowa odpowiedź to jednak 139. Mogłabym prosić o wyjaśnienie skąd ta różnica i gdzie popełniłam błąd? 

Link do treści zadania: 

https://www.cke.edu.pl/images/_EGZAMIN_MATURALNY_OD_2015/Arkusze_egzaminacyjne/2017/formula_do_2014/informatyka/MIN-P2_1P-172.pdf

Mój kod:

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    fstream dane;
    dane.open("liczby.txt",ios::in);
    fstream odpowiedzi;
    odpowiedzi.open("wyniki4.txt",ios::out);
    odpowiedzi<<"a)"<<endl;
    string linia;
    int licznik=0;
    int tab[3];
    while(getline(dane,linia))
    {
        for(int i=0;i<3;i++)
        {
            dane>>tab[i];
        }
        if((tab[2]>tab[1])&&(tab[1]>tab[0]))
            licznik++;
    }
    odpowiedzi<<licznik<<endl;
    odpowiedzi.close();
    dane.close();
    return 0;
}

 

2 odpowiedzi

0 głosów
odpowiedź 26 grudnia 2018 przez RafalS VIP (122,820 p.)
edycja 26 grudnia 2018 przez RafalS

Kolega już rozwiązał problem, a ja proponuje przerzucić się na pythona, w którym te zadanka często da się napisać w jednej linijce :D

print(sum(sorted(three) == three for three in [[int(number) for number in line.split()] for line in open('liczby.txt')]))

 

–1 głos
odpowiedź 26 grudnia 2018 przez jeremus Maniak (59,720 p.)
błąd polega na tym że czytasz dwukrotnie z pliku dane

w while (getline

a potem

dane >> tab

czyli  pomijasz pierwsza linię

można zrobić while ( !  dane.eof()

ale uważa na ostatnia linię - jak jest pusta ( w pliku wejściowym ) to podwójnie policzy
komentarz 26 grudnia 2018 przez jeremus Maniak (59,720 p.)
mam prośbę aby "magik" który zrobił downvote do mojej odpowiedzi się ujawnił - wyjaśnię mu że się myli

Podobne pytania

0 głosów
1 odpowiedź 2,824 wizyt
pytanie zadane 27 lutego 2018 w C i C++ przez Scypyon Gaduła (3,450 p.)
0 głosów
0 odpowiedzi 1,117 wizyt
0 głosów
0 odpowiedzi 377 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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!

...