Tablica tablic i błąd

0

Witam,

Mam sobie taki prosty programik co wczytuje dane do tablicy. Otóż przy ostatnim kroku pętli for się wywala z kodem błędu -1073741510. Mógł by ktoś rzucić okiem ?

Pozdrawiam

 #include<stdio.h>
#include<stdlib.h>

int main()
{
    int i,j;
    int pokoje, osoby, rozmiar;
    int **znajomi;

    scanf("%d",&pokoje);
    scanf("%d",&osoby);

    znajomi = (int**)malloc(osoby * sizeof(int*));

    for(i=0;i<osoby;i++)
    {
        scanf("%d",&rozmiar);
        znajomi[i] = (int*)malloc((rozmiar+1) * sizeof(int));
        znajomi[i][0] = rozmiar;
        for(j=0;j<(rozmiar+1);j++)
        {
            scanf("%d",&znajomi[i+1][j+1]);
        }
    }

    return 0;
}
0
 scanf("%d",&znajomi[i+1][j+1]);

Dlaczego i+1?

0

Przepraszam, mam samo

 i

, zacząłem szukać błędu i kombinować i wklejając na forum nie poprawiłem :)

Ok już dobrze :) Przepraszam za zawracanie gitary.

0

Znów mam ten sam błąd :( Zdążyłem dopisać to:

#include<stdio.h>
#include<stdlib.h>

int main()
{
    int i,j,k,l,n,m,o,p,q;
    int pokoje, osoby, rozmiar;
    int **znajomi;
    int **tablica_pokoi;

    scanf("%d",&pokoje);
    scanf("%d",&osoby);

    znajomi = (int**)malloc(osoby * sizeof(int*));
    tablica_pokoi = (int**)malloc(pokoje * sizeof(int*));

    for(i=0;i<osoby;i++)
    {
        scanf("%d",&rozmiar);
        znajomi[i] = (int*)malloc((rozmiar+2) * sizeof(int));
        znajomi[i][0] = i+1;
        znajomi[i][1] = rozmiar;


        for(j=0;j<rozmiar;j++)
        {
            scanf("%d",&znajomi[i][j+2]);
        }

    }


    for(i=0;i<pokoje;i++)
    {
        tablica_pokoi[i] = (int*)malloc((pokoje+1) * sizeof(int));
        tablica_pokoi[i][0] = i+1;

        for(j=0;j<osoby;j++)
        {

                for(l=0;l<znajomi[l][1];l++)
                {
                    for(n=0;n<znajomi[n+1][1];n++)
                    {

                        tablica_pokoi[j][l+1] = znajomi[j+1][0];

                        if(znajomi[j][l+2] != znajomi[j+1][n+2])
                        {
                            tablica_pokoi[j+1][l+1] = znajomi[j+1][0];
                        }
                    }
                }
        }
    }

    for(m=0;m<pokoje;m++)
    {
        for(o=0;o<rozmiar;o++)
        {
            if(tablica_pokoi[m][o+1] = m)
            {
                printf("%d ",m);
            }
        }
    }



    return 0;
}


Można liczyć na drobną pomoc ?

0

Może zamiast mnożyć fory i tablice zastanów się jak mógłbyś wykorzystać struktury. Opisz jaki jest cel działania programu ;).

0

Hmm, pomyślę nad tym i doczytam, ale błąd obecnie mam na wczytywaniu danych na samym początku. Co to może być ?

Oto zadanie:

Wejście

Na standardowym wejściu w pierwszej linii program otrzymuje liczbę P (1 ≤ P ≤ 1000), która określa liczbę pokoi, które mogą zająć pracownicy UVN. W drugiej linii wypisywana jest liczba N (1 ≤ N ≤ 10000), która określa liczbę osób, które zapisały się na wyjazd integracyjny. W kolejnych N liniach otrzymujemy liczbę S sąsiadów i listę S osób (1 ≤ S ≤ 10000), które znają kolejni pracownicy.
Wyjście

Jeśli nie można przypisać pracowników tak, by w pokoju osoby się nie znały, program powinien wypisać na standardowym wyjściu słowo NIE.

W przeciwnym razie należy wypisać linijkę tekstu zawierającą kolejne numery pokoi (rozdzielone spacją), w których umieszczone zostały konkretne osoby. Czyli najpierw numer pokoju dla osoby 1., następnie 2., aż do N. Rozwiązanie powinno być pierwszym w porządku leksykograficznym.
Przykład
Wejście

3
6
2 2 3
2 1 3
3 1 2 4
3 3 5 6
2 4 6
2 4 5

Wyjście

1 2 3 1 2 3

Warunki, które powinno spełniać rozwiązanie

Algorytm powinien być implementacją algorytmu przeszukiwania z nawrotami.

Dotarłem, że program się wywala tutaj:

for(n=0;n<znajomi[n+1][1];n++)
                    {

                        tablica_pokoi[j][l+1] = znajomi[j+1][0];

                        if(znajomi[j][l+2] != znajomi[j+1][n+2])
                        {
                            tablica_pokoi[j+1][l+1] = znajomi[j+1][0];
                        }

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