Funkcje nie chcą współpracować

0

Cześć. Mam dość dziwny problem. W programie do edycji obrazów .pgm mam m.in. funkcje do negatywu oraz konturowania. Z poziomu menu wszystko gra i buczy, ale przez wpisywanie z poziomu konsoli niestety nie.

To są te dwie funkcje:

int negatyw (int obrazek[][MAX], int *wymx,int *wymy, int szarosci)
{

	int i,j;
	for (i=0; i<*wymy;++i)		/*dla kazdej kolumny*/
	{							/*a w kazdej dla wierszy*/
		for (j=0; j<*wymx;++j) obrazek[i][j]=szarosci-obrazek[i][j];
	}							/*odejmij wartosc od szarosci*/
} 
int konturowanie (int obrazek[][MAX], int *wymx,int *wymy)
{
	int i,j;
	for (i=0; i<*wymy;++i)		/*dla kazdej kolumny*/
	{							/*a w kazdej dla wierszy*/
		for (j=0; j<*wymx;++j)
		{
			obrazek[i][j]=abs(obrazek[i+1][j]-obrazek[i][j])+abs(obrazek[i][j+1]-obrazek[i][j])/2;
		}
	}
}

a to framgent switcha do czytania polecenia z konsoli:

case 'n':/*****************************NEGATYW*/
				f_negatyw=1;
				if (f_wczytaj==0) printf("Najpierw podaj plik do wczytania!\n");
				else negatyw(obraz, &wymx, &wymy, odcieni);
				break;
case 'k':/*****************************KONTUROWANIE*/
				f_kontur=1;
				if (f_wczytaj==0) printf("Najpierw podaj plik do wczytania!\n");
				else konturowanie(obraz, &wymx, &wymy);
				break;

I teraz tak. Po wpisaniu (pomijam odczyt i zapis) program.out -n -k wszystko jest ok, ale wpisanie program.out -k -n zapisuje plik z błędem. Jakieś pomysły skąd to się może brać?

0

Nie rozumiem po co w każdym case-ie wołasz:

 if (f_wczytaj==0) printf("Najpierw podaj plik do wczytania!\n");

Nie możesz sprawdzić tego przed switchem?
Zakłądając, że funkcje działają dobrze to błąd jest przy parsowaniu argumentów i/lub zapisie pliku.

0

To jak interpretujesz argumenty main'a nie ma w przedstawionych fragmentach.

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