Witam. Popełniam gdzieś błąd, ale mam problem ze zlokalizowaniem go w kodzie.
Zasada działania
- wczytuję elementy macierzy
- wyświetlam całą macierz, żeby lepiej ją widzieć
- 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;
}