• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

tablica dwuwymiarowa

VPS Starter Arubacloud
0 głosów
1,412 wizyt
pytanie zadane 9 maja 2020 w C i C++ przez Atman Użytkownik (810 p.)

Moje zadanie brzmi:

a) Zadeklaruj tablicę wymiarową.

b) Napisz funkcję, która zapełnia ją tabliczką mnożenia 10x10.

c) Napisz funkcję, która wypisuje elementy tej macierzy. Wywołaj obie funkcje.

Wydawało mi się że zadanie zostało zrobione poprawnie i błyskawicznie, gdyż program faktycznie wyświetla całą tabliczkę mnożenia do 100 i nie pokazuje błędów w kodzie, jednak program przestaje działać w momencie uruchomienia i wyświetlenia na konsoli. Nie wiem czy problem jest z częścią a,b,c czy po prostu z zasadami C++,

#include <iostream>

using namespace std;


int mnozenie (int tablica[10][10])
{
    for (int i=1; i<11; i++)
    {
        for (int j=1; j<11; j++)
        {
            tablica[i][j] = i*j;
            cout<<tablica[i][j]<<" ";
        }
        cout<<endl;
    }

}


int main()
{
    int tablica[10][10];

    mnozenie(tablica);
    return 0;
}

 dlatego proszę bardzo o pomoc.

komentarz 9 maja 2020 przez OdsetekGlupoty Pasjonat (15,360 p.)
Chyba nie pauzujesz skryptu na końcu ;)
komentarz 9 maja 2020 przez Atman Użytkownik (810 p.)
Wiem, że w Visualu dopisuje się komendę system("PAUSE") ale w CodeBlocku w któym piszę już się tego nie używa.

1 odpowiedź

0 głosów
odpowiedź 9 maja 2020 przez DragonCoder Nałogowiec (36,500 p.)

Wychodzisz po za zakres tablicy. Odpytujesz 10 element, tzn probujesz przypisac tez do niego jakas liczbe, pomimo tego ze on nie sitnieje. PRzez co kompiltor Ci powie, ze probujesz sie dostac do nie istniejacej pamiecii

#include <iostream>

int mnozenie (int tablica[10][10]) {
    for (int i=0; i<10; i++) {
        for (int j=0; j<10; j++) {
            tablica[i][j] = (i+1)*(j+1);
            std::cout << tablica[i][j] << " ";
        }
        std::cout << std::endl;
    }
}

int main()
{
int tablica[10][10];
    mnozenie(tablica);
    return 0;
}

 

komentarz 9 maja 2020 przez Atman Użytkownik (810 p.)

Faktycznie jak się przemodeluje za coś takiego to działa poprawnie bez pokazanie błędów na koniec. Dziękuję bardzo

#include <iostream>

using namespace std;


int mnozenie (int tablica[10][10])
{
    for (int i=1; i<11; i++)
    {
        for (int j=1; j<11; j++)
        {
            tablica[i-1][j-1] = i*j;
            cout<<tablica[i-1][j-1]<<" ";
        }
        cout<<endl;
    }

}


int main()
{
    int tablica[10][10];

    mnozenie(tablica);
    return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 357 wizyt
pytanie zadane 7 grudnia 2022 w C i C++ przez Janchess Początkujący (480 p.)
0 głosów
1 odpowiedź 298 wizyt
+1 głos
1 odpowiedź 285 wizyt
pytanie zadane 24 marca 2021 w C i C++ przez Ciasteczko:) Początkujący (490 p.)

92,843 zapytań

141,782 odpowiedzi

320,858 komentarzy

62,174 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...