...
Błąd przy zerowaniu tablicy tab - taka uwaga iżywaj tab[i][j] - kompilator i tak zoptymalizuje do tegosamego, a będzie czytelniejsze - szybciej zobaczysz, że zerujesz tylko elementy brzegowe.
for(i=0;i<uA+1;i++)
{
*(*(tab+i)+0) = 0 ;
}
for(i=0;i<n+1;i++){
*(*tab+i) = 0 ;
}
te petle powinny mi dac taki efekt (ZAŁĄCZNIK)
W nich mam jakiś błąd ? przepraszam jeśli są to trywialne pytania ale z wskaźnikami bardzo rzadko mam do czynienia.
Tak, błędem jest nie stosowanie []
co powoduje zaciemnienie kodu.
kod
for(i=0;i<uA+1;i++)
{
// *(*(tab+i)+0) = 0 ;
tab[i,0] = 0;
}
for(i=0;i<n+1;i++){
// *(*tab+i) = 0 ;
tab[0,i] = 0;
}
przechodzi kompilacje ale wywala błąd podczas uruchomienia
tab[0][i]
Dodatkowo - zerujesz dalej tylko elementy brzegowe tablic.
Według algorytmu powinno ot być tak (Załącznik)
Więc wyzerowałem tylko pierwsza kolumnę i wiersz tak jak napisaliście :
for(i=0;i<uA+1;i++)
{
// *(*(tab+i)+0) = 0 ;
tab[i][0] = 0;
}
for(i=0;i<n+1;i++){
// *(*tab+i) = 0 ;
tab[0][i] = 0;
}
niestety nie pomogło.
Spróbowałem również przed zapisem do tablicy wyzerować ją ale również nie przyniosło to żadnego skutku. Czy ma ktoś pomysł co tu jest nie tak ? bo nadal wyskakuja mi te wartości.
for(i=0;i<uA+1;i++)
for(int j=0;j<n+1;j++)
tab[i][j] = 0 ;
nie jestem pewien, ale patrząc na to co deklarowałeś na początku, to zamiast:
for(i=1; i<4;i++){
cout<<endl;
for(int j =1;j<uA;j++){
wstawić
for(int j=1; j<4;j++){
cout<<endl;
for(i =1;i<uA;i++){
Głowy nie dam, ale tak mi się wydaje po tym jak tablicę deklarowałeś, chyba, że deklaracje powinny być inne.
Proprawiłem zapis wskaznikó na bardziej czytelny.
Juz nie mam pojęcia czemu tu jest cos źle.
Czy to możliwe że podczas gdy odpalam program rezultaty są nieprawidłowe a gdy go zdebuguje liczy juz poprawnie ?
w zalaczniku 1 jest screen po odpaleniu Execute>>Run
w zalaczniku 2 jest po debugowaniu....
na ideonie natomiast jeszcze inna wersja się ukazuje...
Czy może mi ktoś wyjaśnić skąd się biorą te różnice ?