Witam. Popełniam gdzieś błąd, ale mam problem ze zlokalizowaniem go w kodzie.

Zasada działania

  1. wczytuję elementy macierzy
  2. wyświetlam całą macierz, żeby lepiej ją widzieć
  3. chcę zsumować elementy w wierszu/kolumnie i wyświetlić taką "ściśniętą" macierz

Pierwsze dwa kroki są ok, wszystko ładnie się zapisuje, ale przy wyborze 1 lub 2 wyłącza mi program. Gdzie popełniam błąd?

Aha, i nie bijcie za to, że cały kod w main(), na razie chcę mieć wszystko w jednym miejscu, potem podzielę na funkcje.

#include <stdio.h>

int main()
{
 	int macierz[20][20]; //[wiersz][kolumna]
 	int k, w, col, row;
 	
 	printf("Wczytywanie macierzy\n");
 	printf("Podaj ilosc wierszy\n");
 	scanf("%d", &w);
 	printf("Podaj ilosc kolumn\n");
 	scanf("%d", &k);
 	
 	if(k > 0 && w > 0 ) //macierz przynajmniej 1x1
 	{
	 	 //pobieranie elementow
	 	for(row=0; row<w; row++)
	 	{
		 		   for(col=0; col<k; col++)
		 		   {
	  			  			 printf("Podaj element (%d,%d):", row+1, col+1);
	  			  			 scanf("%d", &macierz[row][col]);
		 		   }
	 	}
	 	//wyswietlenie wporwadzonej macierzy
	 	printf("Wprowadzona macierz:\n");
	 	for(row=0; row<w; row++)
	 	{
		 		   printf("[ ");
		 		   for(col=0; col<k; col++)
		 		   {
	  			  			 printf("%d ", macierz[row][col]);
		 		   }
		 		   printf("]\n");
	 	}
	 	//mamy macierz, teraz policzymy sobie sume liczb w wierszu lub w kolumnie
	 	char wariant;
		int suma[20];
	 	printf("Wybierz:\n");
	 	printf("1 - macierz z sumy elementow w wierszu\n");
	 	printf("2 - macierz z sumy elementow w kolumnie\n");
	
		scanf("%c", &wariant);
		if( wariant == '1' )
		{
		 	printf("wariant1");
		 	//powstanie tablica [w,1]
		 	//przelatujemy po calej tablicy, sumujemy wartosci do tablicy suma, gdzie indeks suma = indeks wiersza
		 	for(row=0; row<w; row++)
	 		{
		 		   for(col=0; col<k; col++)
		 		   {
				   			  suma[row] = macierz[row][col];
		 		   }
	 		}	 		
		}
		else if( wariant == '2' )
		{
		 	 //powstanie tablica [1,k]
		 	 //brakuje jeszcze kodu
		 	 printf("wariant2");
	 	}
	}
 	else
 	{
	 	printf("Macierz musi być przynajmniej wymiaru 1x1\n");
 	}
 	getchar();
 	return 0;
}