Odwracanie tablic C#

0

Witam!

Jest to mój pierwszy post więc się przywitam!

WIIIIIITAM ;)

mam problem z takowym zadaniem:

Napisz program, który wczyta n liczb całkowitych, a następnie wypisze je w odwrotnej kolejności. Wykorzystaj szkielet:

int n = int.Parse(Console.ReadLine()); int[] tab; tab=new int[n]; int i; for (i = 0; i < n; i++) tab[i]=int.Parse(Console.ReadLine()); ```

Napisz pętlę wykonywaną od n-1 (w dół) do 0, wypisującą elementy tablicy.

Wejście
W pierwszym wierszu n < 1000. W kolejnych n wierszach liczby całkowite.

Wyjście
Elementy z tablicy podanej na wejściu w odwrotnej kolejności.

Przykład 1
Wejście:
5
2
7
0
1
2

Wyjście:
2
1
0
7
2

Przykład 2
Wejście:
5
548813
-592844
-715189
844265
602763

Wyjście:
602763
844265
-715189
-592844
548813**

Z głowy wyszło mi coś takiego:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int [] tab;
int n = int.Parse(Console.ReadLine());
tab = new int[n];
int i;
for (i = 0; i < n; i++)
{
tab[i] = int.Parse(Console.ReadLine());
}
for (i = n; i > 0; i--)
{
Console.Write(new int[n]);
Console.WriteLine();
}
Console.ReadLine();
}

    }
}


Ale wynik nie jest taki jak powinien... Nie wiem gdzie jest błąd... :(
Licze nie na rozwiązanie a chociażby podpowiedź. 
Pozdrawiam
0
chabov napisał(a)
        for (i = 0; i < n; i++)
            {
                tab[i] = int.Parse(Console.ReadLine());
            }
            for (i = n; i > 0; i--)
            {
                Console.Write(new int[n]);
                Console.WriteLine();
            }


Panie kochany, podstawy.

Do poszukania: Co to znaczy new int[n], jak się dostaje do tablicy żeby wyciągnąć jej dany element.
o. na przykład tutaj: http://4programmers.net/C_sharp/Tablice
0
chabov napisał(a)
        int [] tab;
        int n = int.Parse(Console.ReadLine());
        tab = new int[n];
        int i;
            for (i = 0; i < n; i++)
            {
                tab[i] = int.Parse(Console.ReadLine());
            }



O tutaj to jest...
0
chabov napisał(a)
            for (i = 0; i < n; i++)
                {
                    tab[i] = int.Parse(Console.ReadLine());
                }
                for (i = n; i > 0; i--)
                {
                    Console.Write(new int[n]);
                    Console.WriteLine();
                }

Przy każdym przejściu pętli wyświetlasz cały czas nową tablicę (a dokładniej jej adres)! Nie zastanowiło Cię słówko new, którego tutaj użyłeś?

0

Poza tym lepiej (bezpieczniej) w pętli nie robić warunków typu i < n ani i = n tylko zastosować tab.Length.
No i nie ma żadnego sensu deklarować sobie licznika pętli (i) przed pętlą. Wygodniej i czytelniej jest napisać: for (int i = 0; i < tab.Length; i++).

0

Tu masz rozwiązanie jakbyś czegoś nie rozumiał to pytaj, pozdro

int n = int.Parse(Console.ReadLine());
            int[] tab;
            tab = new int[n];
            
            for (int i = 0; i < n; i++)
                tab[i] = int.Parse(Console.ReadLine());
            //juz dane do tablicy są wczytane teraz trzeba odwrocic zawartosc tablicy

            Console.WriteLine("oto wynik:");
            for (int i = tab.Length; i > 0; i--)
            {
                Console.WriteLine(tab[i-1]);  //bo indeksujemy od 0
            }
            Console.ReadLine(); 
0
 for (int i = tab.Length; i > 0; i--)
            {
                Console.WriteLine(tab[i-1]);  //bo indeksujemy od 0

a czemu by nie

for (int i = tab.Length-1; i >= 0; i--)
            {
                Console.WriteLine(tab[i]);  //bo indeksujemy od 0

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