Wczytywanie liczb - odwrotna kolejność na wyjściu

Wczytywanie liczb - odwrotna kolejność na wyjściu
JA
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:122
0

http://pl.spoj.com/problems/PP0502B/ Błąd wykonania. Proszę o radę. Mam coś takiego

Kopiuj
public static void main(String[] args) {
        Scanner skaner = new Scanner(System.in);
        int liczbaTestow = skaner.nextInt();

        ArrayList<String> tablica = new ArrayList<String>();
        for(int i=0;i<liczbaTestow;i++){
            int liczbaLiczb = skaner.nextInt();
            for(int j=0;j<=liczbaLiczb;j++){
                String a = skaner.nextLine();
                tablica.add(a);           
            }
            for(int k=liczbaLiczb;k!=0;k--){
                   String c = tablica.get(k);
                   System.out.print(c+" ");
            }
            
        }

    }
KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:5 miesięcy
  • Postów:2514
0

Wypisz sobie wartosci licznikow w petlach ("j" i "k") to sam zrozumiesz co jest zle.


░█░█░█░█░█░█░█░█░█░█░█░
JA
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:122
0

Nic mi to nie dało. Dodatkowo nie rozumiem dlaczego w pętli z licznikiem "j", dla "liczbaLiczb" = np. 3 wczytuje tylko 3 liczby zamiast 4. j=0, j=1, j=2, j=3 - powinno wczytywać moim zdaniem.

Tumeg
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 8 lat
  • Postów:687
0
Kopiuj
public class main {

	public static void main(String[] args) {
        Scanner skaner = new Scanner(System.in);
        int liczbaTestow = skaner.nextInt();
 
        ArrayList<String> tablica = new ArrayList<String>();
        for(int i=0;i<liczbaTestow;i++){
        	
            int liczbaLiczb = skaner.nextInt();
            
            for(int j=0;j<=liczbaLiczb;j++){
                String a = skaner.nextLine();
                tablica.add(a);           
            }
            
            for(int k=liczbaLiczb;k >= 0;k--){
                   String c = tablica.get(k);
                   System.out.print(c+" ");
            }
           tablica.clear();
        }
 
    }

}
edytowany 3x, ostatnio: Tumeg
JA
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:122
0

To nic nie dało.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

@jabluszko nic w tym twoim kodzie nie jest poprawnie napisane. Weź ty może zacznij od przeczytania ze zrozumieniem dowolnego kursu programowania? Bo póki co każdy twój post wygląda tak:

noidea.jpg

Przecież ten twój kod nie zadziała nawet dla przykładowego zestawu danych! Dowód:
http://ideone.com/ZsjZ6B

Czemu? Na przykład dlatego że znów czytasz CAŁĄ LINIĘ zamiast PO JEDNEJ LICZBIE. Przecież widzisz w treści że kolejne liczby nie są (!) podawane w nowych liniach! Poza tym oczywiście nigdy nie czyścisz tej swojej tablicy więc w każdym kolejnym teście dojdzie ci więcej liczb...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 3x, ostatnio: Shalom
KA
xdd
Shalom
@karolinaa widzę nowy avatar. Mogłabyś się tak zafarbować :P
JA
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:122
0

Jestem w trakcie czytania kursu oraz książki. Naukę zacząłem 2 tygodnie temu. Robię co mogę. Nie mam pomysłu to od razu pytam, nawet najgłupsze pytanie (wg odbiorcy) ma sens dla pytającego. Jeżeli aż tak mocno bulwersują cię moje wątki, nie psuj sobie zdrowia.

Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

Nie mam pomysłu to od razu pytam

W takim razie nie marnuj czasu na nauke programowania, bo to nie jest dyscyplina dla ciebie. Nie mówie tego ze złośliwości, chcę ci oszczędzić rozczarowań i zmarnowanego czasu. Do wszystkiego trzeba mieć predyspozycje, a tobie tych do programowania zwyczajnie brakuje.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
JA
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 5 lat
  • Postów:122
0

Nie musisz mnie łapać za słówka. Czego chcesz dowieść? Na podstawie paru wątków na forum stwierdzasz, że to nie dyscyplina dla mnie, że marnuję czas, że brak mi predyspozycji. Na szybko przychodzi mi na myśl Olbrychski, jemu nikt nie wróżył kariery, na pewno spotkał też na swojej drodze kogoś takiego jak ty. Takich przykładów są miliony. Wyluzuj

Artekat
  • Rejestracja:ponad 11 lat
  • Ostatnio:około 7 lat
  • Lokalizacja:Elbląg
  • Postów:49
0

myślę ze @Shalom ma trochę racji. W informatyce, a szczególnie w programowaniu jedną z ważnieszych zdolności potrzebnych do działania jest samodzielne znajdowanie informacji. Czy to do API czy to do prostych metod/klas. Jeżeli ktoś uczy się z kursu/ksiażki i ma problem z (tak naprawdę) podstawowymi zadaniami to co będzie przy naucę obiektowości, polimorfii, dziedziczenia itd. Gdzie dopiero tam zaczynają się schody.

Z innej strony rozumiem @jabluszko młody szalony i narwany :D Z czasem zrozumiesz o co chodzi @Shalom :P A tym czasem proponuję poczytać te kursy i książki, życzę wytrwałości :D

ZI
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 9 lat
  • Postów:22
0
  1. Pobierasz liczbę testów
  2. Pobierasz ilość liczb i tworzysz tablice o takiej samej ilości
  3. Wczytujesz liczby do tablicy
  4. Wypisujesz od tyłu
Heheczek
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 5 lat
  • Postów:148
0

Masz zobacz napisalem ci w c# :

EDIT: Według wskazówek n0name_l zmieniłem ten program i ma się następująco xD

Program.cs

Kopiuj
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WriteNumbers
{
    /*
     * Odwróć kolejność elementów w tablicy.
        Wejście

        Najpierw liczba testów t (t ≤ 100). Następnie dla każdego testu liczba n (n ≤ 100) i n liczb oddzielonych spacjami.
        Wyjście

        Dla każdego testu n liczb w porządku odwrotnym niż na wejściu.
        Przykład

        Wejście:
        2
        7 1 2 3 4 5 6 7
        3 3 2 11

        Wyjście:
        7 6 5 4 3 2 1
        11 2 3

     */ 
    class Program
    {
        static bool TranslateTokensToListOfNumbers(string[] tokens, out List<int> eachTest)
        {
            eachTest = new List<int>();
            for (int i = 0; i < tokens.Count(); i++)
            {
                int number;
                if (int.TryParse(tokens[i], out number))
                {
                    eachTest.Add(number);
                }
                else
                {
                    eachTest = null;
                    return false;
                }
            }
            return true;
        }
        static void Main(string[] args)
        {
            ReverseOrder reverseOrder = new ReverseOrder();
            int tests;
            string consoleInput;

            consoleInput = Console.ReadLine();

            while (!int.TryParse(consoleInput, out tests) || (!reverseOrder.CheckCountOfTests(tests)))
            {
                Console.WriteLine("Podales nieprawidlowe dane lub nie podales liczby w przedziale (" + ReverseOrder.minCountOfTests + "," + ReverseOrder.maxCountOfTests+")");
                consoleInput = Console.ReadLine();
            }

            reverseOrder.CountOfTests = tests;

            for (int i = 0; i < reverseOrder.CountOfTests; i++)
            {
                List<int> eachTest ;
                string[] tokens = Console.ReadLine().Split();
                while (!TranslateTokensToListOfNumbers(tokens, out eachTest) || !reverseOrder.CheckTestNumbers(eachTest))
                {
                    Console.WriteLine("Podales nieprawidlowe dane lub nie podales pojedynczej liczby n w przedziale(" + ReverseOrder.minValueOfNumber + "," + ReverseOrder.maxValueOfNNumber + ")");
                    tokens = Console.ReadLine().Split();
                }
                reverseOrder.Numbers.Add(eachTest);
            }

            reverseOrder.WriteAllNumbers();
            Console.ReadLine();




        }
    }
}

ReverseOrder.cs

Kopiuj
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WriteNumbers
{
    class ReverseOrder
    {

        public const int minCountOfTests = 0;
        public const int maxCountOfTests = 100;
        public const int minValueOfNumber = 0;
        public const int maxValueOfNNumber = 100;


        public ReverseOrder()
        {
            Numbers = new List<List<int>>();
        }
        public List<List<int>> Numbers { get; set; }
        public int CountOfTests { get; set; }




        public bool CheckCountOfTests(int countOfTests)
        {
            if ((countOfTests > minCountOfTests) && (countOfTests<= maxCountOfTests)) return true;
            return false;
        }
        public bool CheckValueOfN(int nNumberValue)
        {
            if ((nNumberValue > minValueOfNumber) && (nNumberValue <= maxValueOfNNumber)) return true;
            return false;
        }

        public bool CheckTestNumbers(List<int> numbers)
        {
            if (numbers == null) return false;
            if (numbers.Count == 0) return false;
            if (numbers.First() != numbers.Count - 1) return false;
            return true;
        }


        public void WriteAllNumbers()
        {
            for (int i = 0; i < CountOfTests; i++)
            {
                for (int j = Numbers[i].Count - 1; j > 0; j--)
                {
                    Console.Write(Numbers[i][j] + " ");
                }
                Console.WriteLine();
            }
        }

    }
}

edytowany 3x, ostatnio: Heheczek
Zobacz pozostałe 10 komentarzy
Heheczek
10) catch (FormatException){} // to sprawdza wejscie, no fakt mogłem użyć try parse
Heheczek
n0name_l Poprawiłem, i jak teraz? :P bez wyjatkow, komentarzy, ze stałymi :P
pingwindyktator
naprawde potrzebujesz tyle kodu, żeby wykonać tak proste zadanie?
Heheczek
wcześniej było mniej, ale chciałem żeby było bardziej prawidłowo i sprawdzać wszystkie warunki przy okazji
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)