MAIN Kasztany - wyskakuje "zła odpowiedź" a program działa dobrze

0

Witam!

Realizuję kurs MAIN i zatrzymałem się na zadaniu Kasztany. Kod, który napisałem działa bowiem liczy wszystko tak jak trzeba,a le kiedy wyślę swoje rozwiązanie to na MAIN wyskakuje, że błędna odpowiedź i nie mam pojęcia dlaczego tak jest. Może ktoś powiedzieć mi co jest nie tak?

#include <iostream>

using namespace std;

int main()
{
    int d, n, a, suma = 0;

    cin >> d;
    int t[d];

    for(int i = 1;i<=d;i++)
    {
        cin >> n;
        for(int j = 1;j<=n;j++)
        {
            cin >> a;
            suma += a;
        }
        t[i] = suma;
        suma = 0;
    }
    for(int k = 1;k<=d;k++)
    {
        cout << t[k] << endl;
    }

    return 0;
}
 
2
  1. Alokujesz tablice na stosie a pewnie zakres danych jest za duży i program się wywali dla większych danych.
  2. Obie pętle wpisujace/czytające z tablicy mają off-by-one. Tablica o N elementach ma indeksy od 0 (!) do N-1 a nie od 1 do N.
1
cin >> d;
int t[d]; 

Ponadto C++ nie ma VLA.

0

Wystarczy odjąć jeden od odpowiednich indeksów

diff kasztany.cpp kasztany2.cpp
21c21
<         t[i - 1] = suma;
---
>         t[i] = suma;
26c26
<         cout << t[k - 1] << endl;
---
>         cout << t[k] << endl;

1 użytkowników online, w tym zalogowanych: 0, gości: 1