Tablica dwuwymiarowa - gdzie jest błąd?

0

Postanowiłem napisać krótki program, aby wypróbować tablice dwuwymiarowe, ale nie obyło się bez problemu.
Oto kod:

#include <iostream>
int main()
  {
    int a [5][5];
    for (int i=0, j=0; i<5 , j<5; i++,j++)
    {
        std::cout << "Wprowadz kolejna cyfre: ";
        std::cin >>a[i][j];
        if (i<5 && j<5)
        {
            for(i,j; 0>i, 0>j; i--, j--)
            {
                std::cout<< a<<std::endl;
            }
        }
    }
    return 0;
  }

Program miał pobierać 4 cyfry, a następnie je wypisać od tyłu

1

Ale po co do tego tablica dwuwymiarowa?

//
W pierwszym forze idziesz po indeksach 0..4 więc pobierzesz 5 liczb a nie 4.

Nie wiem po co ten zagnieżdżony for w jakimś if (i<5 && j<5).

Zostaw pierwszego fora w postaci for(int i = 0; i<5; i++) i w nim wczytuj do a[i][i].

Później drugi for(ale nie zagnieżdżony) for(int i = 4; i >=0 ; i--) i w nim wypisuj a[i][i].

Ale to na prawdę nie ma sensu i z tablic dwuwymiarowych to przećwiczysz sobie chyba tylko deklarację...

1

Wutf?
Takiej udziwnionej petli for to jescze nie widzialem.
Najpierw iteruj po kolumnach, potem po komórkach, coś takiego

for(unsigned int i=0;i<5;i++)
{
for(unsigned int j=0;j<5;j++)
cin >> tab[i][j];
}
1

Przy okazji:

for (int i=0, j=0; i<5 , j<5; i++,j++)

Warunek zakończenia pętli jest inny niż myślisz (pomijając to, że totalnie nie pasuje do tego co chciałeś osiągnąć). Wynik działania operatora przecinka w 99% przypadkach jest inny niż myślą początkujący. To co chciałeś to jest:

for (int i=0, j=0; i<5 && j<5; i++,j++)

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