Hej,
mam problem ze zrozumieniem błędu w napisanym przeze mnie programie na potrzeby zadania ze spoj-a.
Treść zadania:
Twoim zadaniem jest dodać wszystkie liczby całkowite podane na wejściu.
Wejście
W 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
Program, który napisałem jest akceptowany jedynie przez kompilator Clang i tylko w wersji, gdy zmienna int wynik
znajduje się w głównej pętli for
oraz jest do niej przypisana wartość 0
tzn ma postać int wynik=0;
. W przypadku samego int wynik;
również odpowiedź zostaje odrzucona (co bardzo mnie dziwi, bo przecież domyślnie ma wówczas wartość 0
?). Z kolei kompilator GCC wyrzuca błędną odpowiedź za każdym razem. Poniżej treść programu.
#include <stdio.h>
#include <stdlib.h>
int liczbatestow;
int liczbaliczb;
int main(){
scanf("%d", &liczbatestow);
for(int i=0; i<liczbatestow; i++){
scanf("%d", &liczbaliczb);
int suma[liczbaliczb];
liczbaliczb--;
int j = liczbaliczb;
for (;j>=0;j--){
scanf("%d", &suma[j]);
}
int wynik=0;
while(j<=liczbaliczb){
wynik = suma[j]+wynik;
j++;
}
printf("%d\n", wynik);
}
return 0;
}
for
powoduje błąd.