W strukturalnych językach programowania w celu przechowania wyników tabliczki mnożenia dla liczb od 1 do 10 (100 iloczynów będących liczbami całkowitymi) należy użyć
Poprawna jest tablica dwuwymiarowa 10×10 o elementach typu całkowitego. Tabliczka mnożenia ma naturalny układ wierszy i kolumn: wynik mnożenia i przez j zapisuje się w komórce t[i][j]. Tablica 10×10 ma dokładnie 100 elementów, a wszystkie iloczyny są liczbami całkowitymi, więc typ int wystarczy.
Do zapamiętania: w C++ deklaracja wygląda tak: int t[10][10];, a wypełnia się ją dwiema zagnieżdżonymi pętlami for. Indeksy zaczynają się od 0, więc iloczyn 3·7 trafi np. do t[2][6]. Tablice dwuwymiarowe stosuje się wszędzie tam, gdzie dane tworzą siatkę: plansza gry, macierz, tabela wyników.
Każda z błędnych odpowiedzi ma za małą pojemność albo zły typ danych. Jedna zmienna zmiennoprzecinkowa przechowuje jedną liczbę, a potrzeba ich sto - i to całkowitych, więc typ zmiennoprzecinkowy jest tu dodatkowo niepotrzebny. Struktura z 10 polami typu łańcuchowego zmieściłaby najwyżej 10 napisów; liczby zapisane jako tekst trzeba by przy każdym obliczeniu zamieniać z powrotem na liczby.
Tablica 10 elementów typu logicznego jest błędna podwójnie: ma tylko 10 miejsc, a typ logiczny przechowuje wyłącznie wartości prawda albo fałsz, nie wynik mnożenia. Rozwiązując takie zadanie, warto zadać dwa pytania: ile wartości trzeba zapamiętać i jakiego są typu. Tutaj odpowiedzi brzmią: sto liczb całkowitych ułożonych w 10 wierszy po 10 kolumn - a to dokładnie opis tablicy dwuwymiarowej typu całkowitego. Dobór struktury danych zawsze zaczyna się od tych dwóch pytań.