Rozwiąż sudoku

0

Mam do napisania program, który rozwiązuje sudoku. Moim problemem jest fakt, że dopiero zaczynam przygodę z programowaniem, a już zostałam rzucona na głęboką wodę. Wszystko ma być zrobione prostymi rozwiązaniami i wchodzi w grę tylko c ++, ewentualnie c. Proszę o jakąś pomoc, nakierowanie itp. Będę dozgonnie wdzięczna

0

Oczywiście uprzednio poświęciłaś kilka godzin czasu na szukanie rozwiązania we własnym zakresie (Google), i NIC nie odnalazłaś? :|

0

Najbardziej oczywiste rozwiązanie? Rekurencja z powrotami.
BTW mamy czerwiec. Oczywiście czerwiec to jest zwykle początek semestru...

0
Patryk27 napisał(a):

Oczywiście uprzednio poświęciłaś kilka godzin czasu na szukanie rozwiązania we własnym zakresie (Google), i NIC nie odnalazłaś? :|

Oczywiście, że znalazłam, ale znalezione przeze mnie rozwiązania są albo w c# albo tak zagmatwane, że nie umiem ich ogranąć

0

sam poświęciłem na to kiedyś trochę czas bo warto się tego nauczyć by zrozumieć rekurencję. Pisanie sudoku jest bardzo ciekawe gdy wie się jak działa rekurencja.

0
Shalom napisał(a):

BTW mamy czerwiec. Oczywiście czerwiec to jest zwykle początek semestru...

Miałam może z 15 godzin programowania, na których mało co przerobiliśmy. Zaczynamy od totalnego zera, tj. pobieranie wartości z klawiatury, krótkie pętle i proste warunki

0

Wymęczyłam, napisałam :)
Ale program potrzebuje jeszcze małych poprawek. Nie bardzo się orientuje jak zamieć printf itd na cout.... Próbowałam, ale nie chciało skompilować. Chciałby mi ktoś pomóc z takimi poprawkami?

int j;
for(i=0; i<n; i++)
{
for(j=0; j<k; j++)
printf("%3d ", sudoku[i][j]);
putchar('\n');
}

I jeszcze jedno. Jeżeli używam "cout" to powinnam również używać bibliotekę iostream? Bo jeżeli tak, to nadal nie bardzo mi działa :\

0

o_O Ale WTF? Umiesz napisać program rozwiazujacy sudoku a nie umiesz na koniec wypisać rozwiązania? Coś mi sie nie chce wierzyć...
Odpowiadając na pytanie: tak, jeśli chcesz użyć std::cout to musisz includować iostream. Wystarczy ze zamienisz swojego printfa na

std::cout<<sudoku[i][j];

a ten putchar na

std::cout<<"\n";
0

Nie używam cout, bo ich nie lubię, zawsze używałam printf, więc nie bardzo wiedziałam jak cout działa. Dzięki <3

0

są wolniejsze i mają inną bibliotekę

0

Zwyczajowo operacje I/O na konsoli są wolne, dlatego też nie powinno się wykorzystywać ani printf, ani strumieni (cout) do np.rysowania planszy gry.
http://stackoverflow.com/questions/1924530/mixing-cout-and-printf-for-faster-output

i mają inną bibliotekę

Z drugiej strony: to może printf ma "inną bibliotekę", a nie cout? ...

0

to może printf ma "inną bibliotekę", a nie cout?

Czym się różni wróbelek? Tym że ma jedną nóżkę bardziej.

printf jest w <stdio.h> inaczej <cstdio>, cout jest w <iostream>. Tyle można na ten temat powiedzieć.

W praktyce użycie cout powoduje znaczne spuchnięcie exeka.

Hello world przy statycznym linkowaniu:

cout printf
VC++ 147 kB
MinGW 646 kB
Visual Studio 2012, kompilacja: cl a.cpp /Ox /MT
MinGW GCC 4.7.2, kompilacja: g++ a.cpp -O3 -static-libgcc -static-libstdc++ -s

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