No więc tak mam napisać programik wykonujący działania na macierzach 2x2 i 3x3 w języku C( w zależności co sobie wybierze użytkownik) niby nie ma nic trudnego a jednak... . W mojej konwencji program miał by wypełniać tablice(macierze) w osobnych funkcjach (ze względu na objętość kodu) i na podanych macierzach wykonywać działania, również zdefiniowane jako osobne funkcje. Tyle tytułem wstępu a problem jest następujący a mianowicie funkcja DODAJ nie (działa, działa ale nie wyświetla wartości) nie wiem sami ocenicie i pdpowiedzcie co jest nie tak :P.Poniżej kod (PÓKI CO JEST TYLKO DODWANIE 2x2(nie działające..) reszta kodu to szablon).
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int WTNR1(int x, int y) //wypełnianie pierwszej tablicy
{
int A[x][y];
int i,j;
//czytamy pierwszą tablice
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("PODAJ ELEMENT MACIERZY A O INDEKSACH [%d][%d]",i,j);
scanf("%d",&A[i][j]); //wczytanie pierwszej macierzy
}
}
printf("ZAWARTOSC MACIERZY A:\n");
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
printf("%d",A[i][j]);
printf("\n");
}
return A[x][y];
}
int WTNR2(int x, int y) //wypełnianie 2 tablicy
{
int B[x][y];
int i,j;
//czytamy druga tablice
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("PODAJ ELEMENT MACIERZY B O INDEKSACH [%d][%d]",i,j);
scanf("%d",&B[i][j]); //wczytanie drugiej macierzy
}
}
printf("ZAWARTOSC MACIERZY B:\n");
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
printf("%d",B[i][j]);
printf("\n");
}
return B[x][y];
}
int DODAJ (int A, int B)
{
int x,y=2;
int W[x][y];
int i, j;
for(i = 0; i <x; i++)
{
for(j = 0; j <y; j++)
{
W[i][j] = A + B;
printf("%d",W[i][j]);
printf("\n");
}
}
//wyswietlamy wynik
for(i=0;i<x;i++)
{
for(j=0;j<y;j++)
{
printf("%d",W[i][j]);
printf("\n");
}
}
return W[x][y];
}
int main()
{
int menu_pom, podmenu,x,y,i,j;
printf("MENU\n");
printf("1-MACIERZE 2x2\n");
printf("2-MACIERZE 3x3\n");
printf("3-WYJSCIE\n");
scanf("%d",&menu_pom);
if(menu_pom == 1)
{
x = 2;
y = 2;
printf("1-DODAWANIE MACIERZY 2x2 (A+B)\n");
printf("2-ODEJMOWANIE MACIERZY 2x2 (A-B)\n");
printf("3-MNOZENIENIE MACIERZY 2x2 (A*B)\n");
printf("4-ODWROTNOŚĆ MACIERZY 2x2 (A^-1)\n");
printf("5-POWROT DO MENU GŁOWNEGO\n");
scanf("%d",&podmenu);
switch (podmenu)
{
case 1:
{
printf("DODAWANIE MACIERZY 2x2 (A+B)\n");
WTNR1 (x,y);
WTNR2 (x,y);
printf("MACIERZ WYNIKOWA=\n");
DODAJ;
}
break;
case 2:
{
}
break;
case 3:
{
}
break;
case 4:
{
}
break;
case 5:
{
}
break;
default :
break;
}
}
else if (menu_pom == 2)
{
x == 3;
y == 3;
printf("1-DODAWANIE MACIERZY 3x3 (A+B)\n");
printf("2-ODEJMOWANIE MACIERZY 3x3 (A-B)\n");
printf("3-MNOZENIENIE MACIERZY 3x3 (A*B)\n");
printf("4-ODWROTNOSC MACIERZY 3x3 (A^-1)\n");
printf("5-POWROT DO MENU GŁÓWNEGO\n");
scanf("%d",&podmenu);
switch (podmenu)
{
case 1:
{
}
break;
case 2:
{
}
break;
case 3:
{
}
break;
case 4:
{
}
break;
case 5:
{
}
break;
default :
break;
}
}
else if(menu_pom == 3)
{
printf ("KONIEC\n");
}
else
{
printf("ZLA OPCJA! WYBIERZ OPCJE Z MENU!");
}
return 0;
}