Witam :)
Dostalem zadanie, by napisac kalkulator macierzy wykonujacy 7 dzialan - mnozenie macierzy (takze macierzowo - nie wiem o co chodzi), mnozenie przez wektor, mnozenie przez skalar, a poza tym dodawanie, odejmowanie, transponowanie. Cos tam naskrobalem, jednak duuzo mojemu programowi brakuje, a jego najwiekszym mankamentem jest to, ze wyrzuca kompletnie losowe liczby albo same 0. Najprawdopodobniej wynika to z jakiegos mojego niedopatrzenia, albo calosc jest napisana po prostu zle. Jednak ja nie potrafie znalezc bledu i bylbym wdzieczny gdyby ktos moglby mi pomoc ;) poza tym program ma pamietac ostatni wynik i pozwalac na jego wykorzystanie przy kolejnym dzialaniu i ma nie zakladac poprawnosci danych - to drugie musze jeszcze dopisac. A oto kod:

#include <stdio.h>

#define SMAX 10


int wa=0, wb=0, ka=0, kb=0, wc=0, kc=0, i, j, l, koniec=0, wybor;
double A[SMAX][SMAX], B[SMAX][SMAX], C[SMAX][SMAX];

int main(void)
{   
    do{
    printf("1 - nowe macierze\n");
    printf("2 - wykorzystanie wyniku\n");
    scanf("%d", &wybor);
    switch(wybor){
    case 1://nowe macierze
        {
            printf("Wymiary macierzy nie moga przekraczac wartosci = 10\n");
            printf("Podaj liczbe wierszy macierzy A: ");
            scanf("%d", &wa);
            printf("Podaj liczbe kolumn macierzy A: ");
            scanf("%d", &ka);
            printf("Uzupelnij macierz A:\n");
            for(i=0; i<wa; i++){
            for(j=0; j<ka; j++)
            scanf("%f", &A[i][j]);}
            printf("Na ilu macierzach bedziesz operowac?\n");
            scanf("%d", &wybor);
                switch(wybor){

                case 1:
                break;

                case 2:
                {
                printf("Wymiary macierzy nie moga przekraczac wartosci = 10\n");
                printf("Podaj liczbe wierszy macierzy B: ");
                scanf("%d", &wb);
                printf("Podaj liczbe kolumn macierzy B: ");
                scanf("%d", &kb);
                printf("Uzupelnij macierz B:\n");
                i=0; j=0;
                for(i=0; i<wb; i++){
                for(j=0; j<kb; j++)
                scanf("%f", &B[i][j]);}
                break;}

                default: break;}

            break;
        }

    case 2://wykorzystanie wyniku - do dopisania pozniej
        {
      break;
        }

    default:
    break;
            }
    printf("**Kalkulator macierzy**\n");
    printf("**********MENU*********\n");
    printf("Wybierz rodzaj dzialania\n");
    printf("1 - Mnozenie macierzy\n");
    printf("2 - Mnozenie macierzowo\n");
    printf("3 - Mnozenie przez wektor\n");
    printf("4 - Mnozenie przez skalar\n");
    printf("5 - Dodawanie macierzy\n");
    printf("6 - Odejmowanie macierzy\n");
    printf("7 - Transponowanie macierzy\n");
    scanf("%d", &wybor);
    switch(wybor)
{
    case 1://mnozenie zwykle
    break;
    case 2://mnozenie macierzowo
    {
        for(i=0; i<wa; i++){
        for(j=0; j<ka; j++)
        C[i][j]=0;}
        for(i=0; i<wa; i++)
            for(j=0; j<wa; j++){
        for(l=0; l<ka; l++)
        C[i][j] += A[i][l] * B[l][j];}
        break;
    }
    case 3://mnozenie przez wektor
    break;
    case 4://mnozenie przez skalar
    {
        double skalar=0;
        printf("Podaj liczbe, przez ktora chcesz pomnozyc macierz: ");
        scanf("%f", &skalar);
        for(i=0; i<wa; i++){
        for(j=0; j<ka; j++){
        C[i][j]=A[i][j]*skalar;}}
        break;
    }
    case 5://dodawanie
    {
        if ((wa=wb) && (ka=kb)){
        for(i=0; i<wa; i++){
        for(j=0; j<ka; j++){
        C[i][j] = A[i][j] + B[i][j];}}
        wc=wa;kc=ka;}
        else
        printf("Wymiary macierzy sie nie zgadzaja.");
        break;
    }
    case 6://odejmowanie
    {
        for(i=0; i<wa; i++){
        for(j=0; j<ka; j++){
        C[i][j] = A[i][j] - B[i][j];}}
        break;
    }
    case 7://transponowanie
    {
        for(i=0; i<wa; i++){
        for(j=0; j<ka; j++){
        A[i][j]=C[j][i];}}
        wc=wa;kc=ka;
        break;
    }
    default:
    break;
}
    printf("Twoj wynik to:\n");
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
        printf("c%d%d=%f\n",i+1,j+1,C[i][j]);
    printf("\n");
    printf("Czy chcesz wykorzystac wynik w kolejnym dzialaniu?\n");
    printf("0 - konczy\n");
    scanf("%d", &koniec);
}while(koniec!=0);
getchar();
return 0;
}