Sprawdzenie kodu,zły wynik, zadanie spoj

0

Twoim zadaniem jest dodać wszystkie liczby całkowite podane na wejściu.

Wejście
pierwszym wierszu znajduje się liczba t testów (0 < t < 100)
Każdy test opisany jest w następujący sposób. W pierwszym wierszu dana jest liczba n - liczba liczb do zsumowania. Następnie podanych jest n liczb pooddzielanych spacją.

Przykład

Input:
2
5
1 2 3 4 5
2
-100 100

Output:
15
0

No więc problem rozwiązałem tak :

#include <iostream>
using namespace std;

int main ()
{
int a,b,t;
int suma=0;

cout<<"Podaj liczbę prób"<<endl;
cin>>t;


for(int i=0;i<t;i++)
{
    cout<<"Podaj liczbe liczb"<<endl;
    cin>>a;
    for(int ia=0;ia<a;ia++)
    {
        cout<<"Podaj liczbe nr : "<<ia<<endl;
        cin>>b;
        suma=suma+b;

    }
    cout<<"Wynik wynosi: "<<suma<<endl;

}

    return 0;
} 

Nie rozumimem czego wychodzi mi zła odpowiedź?

PS: Widziałem rozwiązanie na tym forum z zastosowaniem tablicy czy to jest konieczne?

0
#include <iostream>
using namespace std;
 
int main ()
  {
   int T;
   cin>>T;
   while(T--)
     {
      int N,sum=0;
      cin>>N;
      while(N--)
        {
         int value;
         cin>>value;
         sum+=value;
        }
      cout<<sum<<endl;
     }
   return 0;
  }
1

tak jak napisał @_13th_Dragon sprawdzarki na spoju nie akceptują nic innego poza rozwiązaniem. Jak sprawdzasz sobie w domu rozwiązania i wydaje Ci się że wszystko jest ok, a nie przechodzi to najlepiej w konsoli odpal cos takiego
nazwa_pliku.exe < nazwa_pliku_z_wejsciem.txt > nazwa_pliku_z_wyjsciem.txt w pliku nazwa_pliku_z_wejsciem.txt wpisz sobie wejscie ze spoja wczesniej a pozniej sprawdz czy nazwa_pliku_z_wyjsciem.txt wyglada identycznie jak to co jest podane na spoju

0

Może autor dodał te wiadomości do kodu, aby wygodniej było mu debugować (pomijam sensowność tego) ? Tak czy inaczej brakuje zerowania zmiennej suma pomiędzy kolejnymi testami.

0

Po każdej próbie musisz wyzerować wartosc zmiennej suma. Ot cała filozofia.

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