Witajcie
Mam do napisania taki program,który powie czy można zakwaterować osoby do pokoi w motelu w sposób,że osoby będące w pokoju się nie znają.Dostajemy informacje o tym kto kogo zna-zapisuję to sobie w tablicy.Problem pojawia się w użyciu funkcji sprawdzającej czy taki kwaterunek da się wykonać.Mam tutaj skorzystać z rozwiązania problemu rozstawienia n hetmanów.
Napisałem takie coś ale nie wiem czy pętle wykonuje używając odpowiedniego licznika.
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
bool zakwateruj(bool **tablica,int *tablica2,int l_pokoi,int l_osob,int nr_osoby)
{
int i;
for(i=0;i<l_pokoi;i++)
{
if(tablica[nr_osoby][i]==0)
{
tablica2[i]=nr_osoby;
}
if(nr_osoby=l_pokoi-1) return 0;
if(zakwateruj(tablica,tablica2,l_pokoi,nr_osoby+1))
return 0;
else return 1;
}//for
}//zakwateruj
int main()
{
int liczbapokoi;//liczba pokoi
int liczbaosob;//liczba osob zapisanych na wyjazd
int liczbaznajomych;//liczba znajomych danej osoby
int i,j;//liczniki dla petli
int numerznajomego;
scanf("%d",&liczbapokoi);
scanf("%d",&liczbaosob);
bool **znajomosci=(bool**)malloc(liczbaosob*sizeof(bool*));
for(i=0;i<liczbaosob;i++)
{
znajomosci[i]=(bool*)malloc(liczbaosob*sizeof(bool));
}//zaalokowalismy miejsce dla tablicy kwadratowej
//gdzie bedziemy wpisywali kto kogo dokladnie zna(1) lub nie zna(0)
for(i=0;i<liczbaosob;i++)
{
for(j=0;j<liczbaosob;j++)
{
znajomosci[i][j]=0;
}
}//wyzerowanie tablicy znajomosci
int *gdziekto=(int*)malloc(liczbaosob*sizeof(int));
for(i=0;i<liczbaosob;i++)
{
gdziekto[i]=0;
}//wyzerowanie tablicy gdzie kto sie znajduje
for(i=0;i<liczbaosob;i++)
{
scanf("%d",&liczbaznajomych);
for(j=0;j<liczbaznajomych;j++)
{
scanf("%d",&numerznajomego);
znajomosci[i][numerznajomego-1]=1;
//wypelnienie tablicy znajomosci,przejechane po 1 w lewo na indeksach
}//for dla wczytania sasiadow
}//for dla wypelnienia znajomosciami
}//main
Z pewnością coś namieszałem w funkcji zakwateruj. Chodziłoby mi o nakierowanie na to co robie błędnie.Gotowe rozwiązanie nie wchodzi w grę bo chciałbym coś wynieść z otrzymanej od Was pomocy.
Pozdrawiam :)