tablica dwuwymiarowa - pętle for - wypełnianie - problem

0
#include <iostream>
#include <conio.h>
using namespace std;
unsigned short tab[9][9];
int main()
{
    unsigned short i=0, j=0,n=1;
    for(i=0;i<=9;i++)
    {
        for(j=0;j<=9;j++)
        {
            tab[i][j]=n;
            n++;
        }
    }
    for(i=0;i<=9;i++)
    {
        for(j=0;j<=9;j++)
        {
            cout << tab[i][j] << "\t";
        }
        cout << endl;
    }
    getch();
    return 0;
}

Dlaczego tam, gdzie powinny być wielokrotności 10 są liczby o 1 większe (zamiast 10, 20, 30,... jest 11, 21, 31,...) ? Dopiero 100 jest wyświetlone tak, jak być powinno.

1

Tak ogólnie to przekraczasz wymiary tablicy. W pętli twoje maksymalne odwołanie to indeks 9, a musi być max 8, bo tablica ma wymiary 9x9. Zmień na <.

0
 
#include <iostream>
#include <conio.h>
using namespace std;
unsigned short tab[10][10];
int main()
{
    unsigned short i=0, j=0,n=1;
    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {
            tab[i][j]=n;
            n++;
        }
    }
    for(i=0;i<10;i++)
    {
        for(j=0;j<10;j++)
        {
            cout << tab[i][j] << "\t";
        }
        cout << endl;
    }
    getch();
    return 0;
}

No tak, siedziałem nad tym godzinę, pamiętałem, że tablicę indeksuje się od zera... ale jakoś tego nie zauważyłem :)

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