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

Co poprawić w tym kodzie?

Object Storage Arubacloud
+1 głos
275 wizyt
pytanie zadane 19 stycznia 2017 w C i C++ przez ChiriChiri Obywatel (1,260 p.)

Robię zadanie ze spoja http://pl.spoj.com/problems/RNO_DOD/ , ale zauważyłam, że zmienna w pętli się "nie zeruje" (na tym chyba polega problem)  i zastanawiam się co źle zrobiłam , poniżej wklejam kod:

#include <iostream>
using namespace std;

int main() {
int ilosctestow, suma=0,iloscliczb, liczba;

cin>>ilosctestow;

for(int i=0; i<ilosctestow; i++)
  {
  
  	cin>>iloscliczb;
  	for(int k=0; k<iloscliczb; k++) {cin>>liczba; suma+=liczba;};
  	cout<<suma<<endl;
  }
	return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 19 stycznia 2017 przez niezalogowany
edycja 19 stycznia 2017
 
Najlepsza
#include <iostream>
using namespace std;

int main()
{
    int ilosctestow, suma=0,iloscliczb, liczba;

    cin>>ilosctestow;

    for(int i=0; i<ilosctestow; i++)
    {
        cin>>iloscliczb;
        for(int k=0; k<iloscliczb; k++)
        {
            cin>>liczba; 
            suma+=liczba;
        }
        cout<<suma<<endl;
        suma=0; // <--- tego brak
    }
    return 0;
}

Tak jak zauważyłaś jedną zmienną trzeba było wyzerować pomiędzy różnymi krokami pętli.

1
komentarz 19 stycznia 2017 przez ChiriChiri Obywatel (1,260 p.)

Dziękuję smiley

+1 głos
odpowiedź 19 stycznia 2017 przez criss Mędrzec (172,590 p.)

zauważyłam, że zmienna w pętli się "nie zeruje"

No tak, bo w kodzie nie ma żadnego zerowania sumy.

  i zastanawiam się co źle zrobiłam

Sama sobie odpowiedziałaś i zamiast to naprawić wrzucasz to na forum. Nie rozumiem. Dopisz to zerowanie po prostu.

Jeśli zależy ci , żeby SPOJ ci to zaliczył, to przyjrzyj się jak wygląda przykład. Najpierw input dla wszystkich testów, potem output dla wszystkich testów. Jeśli będziesz to przeplatać tak jak robisz teraz, to SPOJ źle to zinterpretuje i ci nie zaliczy. Co nie znaczy, że jest sens sie w to bawić tylko dla zaliczenia. Imo strata czasu.

komentarz 19 stycznia 2017 przez 10kw10 Pasjonat (22,880 p.)
Przeplatane inputy z outputami tez zalicza
komentarz 19 stycznia 2017 przez niezalogowany

Jeśli zależy ci , żeby SPOJ ci to zaliczył, to przyjrzyj się jak wygląda przykład. Najpierw input dla wszystkich testów, potem output dla wszystkich testów. Jeśli będziesz to przeplatać tak jak robisz teraz, to SPOJ źle to zinterpretuje i ci nie zaliczy. 

Jesteś w błędzie. Czy kiedykolwiek spoj tak działał? Mam wrażenie, że nie spotkałem się jeszcze z czymś takim.

komentarz 19 stycznia 2017 przez ChiriChiri Obywatel (1,260 p.)
Po prostu myślałam, że w forze jest to tak ustalone "odgórnie" jakby, nie wiem czemu. I bardziej myślałam nad tym że pomieszałam coś z budową kodu, kolejnością itp
Dziękuję
komentarz 19 stycznia 2017 przez criss Mędrzec (172,590 p.)

@10kw10, @Hipcio - A no to sorka wtedy :D Tak mi sie kojarzyło, że tak jest.

Po prostu myślałam, że w forze jest to tak ustalone "odgórnie" jakby

Cokolwiek by to nie było, w c++ możesz być pewna, że nic takiego się za twoimi plecami nie stanie :P 

komentarz 19 stycznia 2017 przez niezalogowany
Ja 5 raz chyba widzę na forum jak ktoś zgłasza taką uwagę i się już zastanawiam czy to mit czy faktycznie kiedyś tak było :)
komentarz 19 stycznia 2017 przez criss Mędrzec (172,590 p.)
No to pewnie dlatego tak myślałem hehe

Podobne pytania

0 głosów
3 odpowiedzi 245 wizyt
0 głosów
2 odpowiedzi 396 wizyt
pytanie zadane 12 stycznia 2017 w C i C++ przez BinaryMan Stary wyjadacz (12,620 p.)
0 głosów
1 odpowiedź 108 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

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

...