Witam wszystkich. Proszę o podpowiedź co może być źle, dostaję błąd SIGABRT, u mnie kod działa poprawnie: https://ideone.com/Z4wsO624
mogę coś, albo coś innego - ale to co ja mogę, to raczej nie rozwiąże twoje problemu
generalnie to:
- pytanie powinno być postawione w sposób jednoznaczny
- wskazane jest przekazywanie kodu poprzez ideone.com1 - nie ginie formatowanie kodu ani jego fragmenty
a jeżeli chodzi o twój problem, to na tym forum można znaleźć informację (by narbej), co może powodować błąd SIGABRT - po usunięciu tego błędu będzie AC, usuń też twoje rozwiązanie z forum
Nie udzielam rad, jak zrobić - co najwyżej, że należy zrobić inaczej
aby przetestować działanie na ideone, należy w okienku dane wejściowe wpisać dane testowe
przykład dla prostych danych5
oczywiście nie działa to poprawnie
Jesteś na tyle blisko AC, że usuń swój kod z forum.
- Zmniejsz ilość elementów analizowanych przez pętle tak, aby nie wyświetlało się zero
- Poza pętlą wyświetl pierwszy element tablicy
- Zastanów się dlaczego to działa
- Dopiero potem ciesz się zasłużonym AC, bo właśnie sprawdziłem, że po tych poprawkach Twój kod dostaje AC
tarpauwatratar - bardzo Tobie dziękuję za cenne wskazówki.
Po tym co napisałeś od razu wydało mi się oczywiste, że powinienem w analizie pomijać element 0 w tablicy, bo on nie będzie przesuwany o jedno miejsce, tylko zawsze wyświetlany na końcu, stąd sensownym wydaje się wyświetlenie go właśnie za pętlą przesuwającą elementy w prawo.
Raz jeszcze BARDZO dziękuję za podpowiedź.
wobec tego usunąłeś przypadkowo właściwą, powodującą błąd linijkę
obejrzyj gdzieś (oczywiście najlepiej na ideone.com3) wynik twojego programu - to zobaczysz, dlaczego sędzia go nie akceptuje
#include <stdio.h>
int main()
{
int d,j,i,l,w;
int t[100];
scanf("%d",&w);
while(w--)
{
scanf("%d",&l);
for(j=0;j<l;j++)
{
scanf("%d",&t[j]);
}
for(j=0;j<l;j++)
{
if (j==0) d=t[j];
t[j-1]=t[j];
if(j==l-1) t[j]=d;
}
for(j=0;j<l;j++)
{
printf("%d ",t[j]);
}
}
return 0;
}
Sędzia mówi że błędna odpowiedz… U mnie wszystko gra. Ktoś podpowie co mam źle?
może po prostu przetestuj program na ideone.com5 dla danych testowych podanych w zadaniu - co zresztą powinieneś zrobić, zanim zadałeś pytanie na forum
Cześć,
Chcę wyciągnąć z tablicy jedną liczbę zadeklarowaną jako int ciag_liczb[1] i przepisać ją do zmiennej int ostatnia_liczba.
Wydawało mi się, że: ostatnia_liczba==ciag_liczb[1]; załatwi sprawę, ale w kompilatorze zmienna ostatnia_liczba ma ciągle wartość 0.
Wskażcie proszę błąd, a będę wiedzieć, gdzie szukać rozwiązania.
Tutaj kod5
prog.cc: In function 'int main()':
prog.cc:27:32: warning: statement has no effect [-Wunused-value]
27 | ostatnia_liczba==ciag_liczb[1];
| ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
prog.cc:37:22: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
37 | if (j=n)
| ~^~
W C++ operator przypisania to =, a operator porównania to ==.