deklaracja macierzy w C

0

Witam, w temacie programowania jestem totalnie zielona .. nie ogarniam tego .. a mam niestety do napisania program który oblicza macierze najpierw 2x2 a później 3x3.. i jest tam dodawanie, odejmowanie, mnożenie oraz odwrotność macierzy ale to mniejsza z tym .. chodzi o sam początek .. nie umiem zadeklarować macierzy tak aby uruchamiając program to ja mogłabym wpisywać wartości jakie mają się pojawić w danej macierzy ... jak to zrobić ? za pewnie to jest banalnie łatwe .. ale nie dla mnie , proszę o pomoc ...

0

Masz już jakiś kod?

2

Kusi mnie by podać linka do kodu dla podobnego tematu, ale jestem przeciwnikiem gotowców.
Dam tylko mały fragment, jako wskazówkę:

// deklaracje z nagłówka:
struct MMatrixDouble;
typedef struct MMatrixDouble *MMatrixDoubleRef;

void MMatrixDoubleFree(MMatrixDoubleRef m);
MMatrixDoubleRef MMatrixDoubleCreate(int rowCount, int columCount);
MMatrixDoubleRef MMatrixDoubleCreateMul(MMatrixDoubleRef a, MMatrixDoubleRef b);
double MMatrixDoubleGet(MMatrixDoubleRef m, int row, int column);
void MMatrixDoubleSet(MMatrixDoubleRef m, int row, int column, double v);
int MMatrixDoubleGetRows(MMatrixDoubleRef m);
int MMatrixDoubleGetColumns(MMatrixDoubleRef m);
void MMatrixDoubleFPrint(MMatrixDoubleRef m, FILE *f);
void MMatrixDoubleFScan(MMatrixDoubleRef m, FILE *f);
MMatrixDoubleRef MMatrixDoubleCreateFScan(int rowCount, int columCount, FILE *f);

// definicje w *.c
struct MMatrixDouble
{
    int rowCount;
    int columnCount;
    double m[];
};

void MMatrixDoubleFScan(MMatrixDoubleRef m, FILE *f)
{
    double *a = m->m;
    for (int row = 0; row < m->rowCount; ++row) {
        for (int col = 0; col < m->columnCount; ++col) {
            fscanf(f, "%lg", a);
            ++a;
        }
    }
}

MMatrixDoubleRef m = MMatrixDoubleCreate(4, 4);
MMatrixDoubleFScan(matrix, stdin);
0
badumts napisał(a):

Masz już jakiś kod?

coś tam próbowałam ale jest jakis błąd ..
#include<stdio.h>
#include<conio.h>
#include<math.h>
#include <stdlib.h>

int main()
{
int i,j;
int x1,x2,x3,x4;
int macierzA[2][2]={x1,x2,
x3,x4};

for(i=0;i<2;i++)
{
for(j=0;j<2;j++)
printf("%-4d",macierzA[i][j]);
printf("\n");
}

getch();
return 0;
}

1

Chodzi Ci o taki zapis?

int macierzA[2][2]={
    {1, 2},
    {3, 4},
};
0

tak tylko chciałabym żeby móc wprowadzać dane do macierzy po uruchomieniu programu (nie wiem czy jasno się wyrażam :/ jeśli nie to przepraszam )

1
int macierzA[2][2];

macierzA[0][0]=1;
macierzA[0][1]=2;
macierzA[1][0]=3;
macierzA[1][1]=4;

lub w pętli (podobnie jak wypisujesz).

0

@amebaumyslowa1234 co ty potrzebujesz konkretnie?
Rozumiem, że chcesz wyczytać macierz ze standardowego wejścia. Pytanie czy rozmiar macierzy masz ustalony sztywno, czy też jest wczytywany ze standardowego wejścia?

Do poczytania: http://www.cplusplus.com/reference/cstdio/scanf/

0

49351211_2221677237872172_1606254198893051904_n.jpg

mam taki projekcik do zrobienia i po prostu nie wiem jak zacząć znaczy sie to co wysłałam wcześniej to próbowałam ale no jak już pisałam jestem zerem w tej działce i nie mam w ogóle pomysłu na to

0

i nie oczekuje że ktoś to za mnie zrobi tylko po prostu potrzebuje jakichkolwiek rad, wskazówek jak to zrobić, jak zacząć , cokolwiek ...

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