Rozmiar tablicy
Ostatnio zmodyfikowano 2014-03-08 23:49
BrutalxD Temat założony przez niniejszego użytkownika |
» 2014-03-07 00:36:43 Ale mi chodzi o powiększenie miejsca w strukturze, a nie poprawiania połowy całkiem sporego programu, ponadto nie jestem obyty z wektorami i obczajenie istoty errora by mi zajęło trochę czasu. |
|
pekfos |
» 2014-03-07 08:38:00 Akurat z 'istotą errora' nie powinieneś mieć żadnych problemów. To jeden z popularniejszych typów błędów. Zamiast przekazywać tablica, przekazuj tablica.data(), lub zmień oczekiwany przez funkcję typ na std::vector<Rozwiazania>&. |
|
Adik80 |
» 2014-03-07 12:32:16 Albo poprostu stworz tablice na stercie: Rozwiazanie * tablica = new Rozwiazanie[ 1000000 ]; + gdzies na koncu main dodac delete [] tablica; |
|
BrutalxD Temat założony przez niniejszego użytkownika |
» 2014-03-08 18:09:53 Adik80 chodzi Ci o to, żeby zrezygnować ze struktury i zastąpić ją tablicą dynamiczną? Czym się różniej takowa tablica od trójwymiarowej? pekfos nie zrozumiałem tego co napisałeś. Co to znaczy " przekazuj tablica.data(), lub zmień oczekiwany przez funkcję typ na std::vector<Rozwiazania>&." nie jestem w stanie zrozumieć tego zdania. Próbuję wklejać podane przez was linijki kodu do mojego programu, ale najwidoczniej gdzieś popełniam błąd. #include<iostream> #include<windows.h> using namespace std;
struct Rozwiazania { unsigned sudoku[ 9 ][ 9 ]; };
main() { char znak; cout << "\n\n\n"; unsigned const N = 6300; Rozwiazania tablica[ N ]; unsigned ilosc = 0; do { cout << "Opcje programu: \n"; cout << "Rozwiazywanie Sudoku - nacisnij r\n"; cout << "Generowanie Sudoku - nacisnij g\n"; znak = getch(); switch( znak ) { case 'r': rozwiazywanie( tablica, ilosc ); break; case 'g': generowanie( tablica, ilosc ); break; case 27: break; default: cout << "Nieprawidlowy klawisz!\n"; break; } } while( znak != 27 ); return 0; }
Jeśli mógłbym prosić to napiszcie w podanym kodzie jak to ma wyglądać, bo szczerze mówiąc trochę na ślepo nanoszę poprawki. A jeśli chodzi o zmianę unsigned sudoku na char sudoku, to program wypisuje zamiast cyfr jakieś buźki, trefle, serduszka i inne znaczki. |
|
Monika90 |
» 2014-03-08 21:28:02 Na początku pliku dopisz #include <vector> Przed main dopisz int. Rozwiazania tablica[ N ]; zmień na vector<Rozwiazania> tablica(N); Funkcje wywołuj, tak: rozwiazywanie( &tablica[0], ilosc ); generowanie( &tablica[0], ilosc ); i chyba będzie OK. #include <vector> #include<iostream> #include<windows.h> using namespace std;
struct Rozwiazania { unsigned sudoku[ 9 ][ 9 ]; };
int main() { char znak; cout << "\n\n\n"; unsigned const N = 6300; vector < Rozwiazania > tablica( N ); unsigned ilosc = 0; do { cout << "Opcje programu: \n"; cout << "Rozwiazywanie Sudoku - nacisnij r\n"; cout << "Generowanie Sudoku - nacisnij g\n"; znak = getch(); switch( znak ) { case 'r': rozwiazywanie( & tablica[ 0 ], ilosc ); break; case 'g': generowanie( & tablica[ 0 ], ilosc ); break; case 27: break; default: cout << "Nieprawidlowy klawisz!\n"; break; } } while( znak != 27 ); return 0; }
A jeśli chodzi o zmianę unsigned sudoku na char sudoku, to program wypisuje zamiast cyfr jakieś buźki, trefle, serduszka i inne znaczki. |
Przy wyświetlaniu rzutuj na int. |
|
BrutalxD Temat założony przez niniejszego użytkownika |
» 2014-03-08 23:49:43 Wybornie, wszystko śmiga prawidłowo. Wielkie dzięki wszystkim za pomoc :) |
|
1 « 2 » |