Ukryta treść:
kod programu
Ukryta treść:
Kod: Zaznacz cały
vector< vector<int> > szachy(k, vector<int>(l) );
Kod: Zaznacz cały
for(int i=0;i<k;i++){
for(int j=0;j<l;j++){
cout<<szachy[i][j];
}
cout << endl;
}
Nie do końca rozumiem to wynikanie - vector jest zadeklarowany lokalnie. Tablice deklarowane lokalnie też mogą być deklarowane przy pomocy zmiennych (które się zmieniają ). Jeśli tablica ma być globalna, której rozmiar ma być wczytany z wejścia to zawsze można użyć wskaźników (funkcja new w c++, malloc w c. Zawsze też można zadeklarować tablicę dostatecznie dużą - i nie wykorzysywać całości (często stosowane rozwiązanie przy zadaniach algorytmicznych) ).Dasio11 pisze:k
il
są wpisywane z wejścia, więc nie wystarczy tablica.
Kod: Zaznacz cały
#include <bits/stdc++.h>
int main(){
int a, b;
std:: cin >> a;
std:: cin >> b;
int tab[a][b]; //deklaruję tablice w funkcji
for(int i=0; i<a; ++i)
for(int j=0; j<b; ++j)
tab[i][j] = i*a + j;
for(int i=0; i<a; ++i){
for(int j=0; j<b; ++j)
std:: cout << tab[i][j] << std:: endl;
std::cout << std:: endl;
}
return 0;
}
W C++ nie mogą.dvrx47 pisze:Tablice deklarowane lokalnie też mogą być deklarowane przy pomocy zmiennych (które się zmieniają ).
Tablica dynamiczna jest w porządku.dvrx47 pisze:Jeśli tablica ma być globalna, której rozmiar ma być wczytany z wejścia to zawsze można użyć wskaźników (funkcja new w c++, malloc w c.
Tylko jeśli znamy sensowne ograniczenie na liczby, które może wpisać użytkownik. Poza tym jeśli zakres jest duży, to niedobrze jest deklarować dużą tablicę na stosie - do tego służy sterta.Zawsze też można zadeklarować tablicę dostatecznie dużą - i nie wykorzysywać całości (często stosowane rozwiązanie przy zadaniach algorytmicznych) ).
Nie.poniższy kod jest poprawny:
zawsze można użyć tej tablicy dynamicznej.Dasio11 pisze:k
il
są wpisywane z wejścia, więc nie wystarczy tablica.