Skocz do zawartości

WTF? Dziwny problem z tablicą


Platyna

Rekomendowane odpowiedzi

Witam

 

To jest fragment mojego kodu w której coś się chrzani:

 

for(int i=1;i<=n;i++)
    {
            int aa;
            scanf("%d",&aa);
            a[i]=aa;
            poz[aa]=i;
            
            for(int j=1;j<=n;j++)
            printf("a%d=%d b%d=%d poz%d=%d\n",j,a[j],j,b[j],j,poz[j]);
    }

 

Na przykład dla n=6.

Gdy pętla główna wykonuje przebieg dla i=1 zmienia się również a[5], a nie tylko a[1].

Ten printf jest po to by kontrolować co się chrzani.

 

Później mam w kodzie jeszcze inne przypisywanie wartości do innych tablic i też się zmieniają wartości w innych komórkach a nawet innych tablicach.

 

Możecie mi powiedzieć What the fuck?! O.o :blink:

 

Może to coś u mnie jest zwalone bo zdarzały mi się też inne dziwne błędy przy innych programach. Na przykład nie mogę stworzyć więcej niż jednego long longa bo wtedy się pierniczą różne wartości w różnych zmiennych i tablicach, a na pewno w tych long longach.

 

Ach i muszę dodać że wszystkie tablice mają rozmiar n+1 więc nie ma mowy o wyjściu poza tablicę.

Odnośnik do komentarza
Udostępnij na innych stronach

Wiem że zaczyna się od 0.

Ale od 1 jest dużo wygodniej w niektórych przypadkach.

 

int n,wn=0;
    int m[n+1];
    int poz[n+1];
    int a[n+1];
    int b[n+1];
    bool ok[n+1];
    int MIN=7000;
    scanf("%d",&n);

 

To są wszystkie deklaracje w programie.

 

 

EDIT:

O kurde ale ze mnie debil O.o

Dałem deklaracje przed scanfem n. Hahaha xDDDDD

Zaraz powinno być wszystko ok xD

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...