Jenom taková technická (neberte mě za blázna), dokázali byste to napsat čistěji? (je to v céčku)
Plno lidí (...neprogramátorů...) se snaží psát podobné typy aplikací bez ukazatelů a adres (a je to zcela nesmyslné - věříte mi?). Takže se zeptám jinak, je tu něco, co se Vám nelíbí?
#include <stdlib.h>
#include <stdio.h>
#define MATRIX_SIZE 3
typedef double TMatrix[MATRIX_SIZE][MATRIX_SIZE];
void readMatrix(TMatrix* matrix);
void add(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2);
void sub(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2);
void printMatrix(const TMatrix* matrix);
int main(int argc, char** argv) {
TMatrix A, B, C;
printf("Matice A:\n");
readMatrix(&A);
printf("Matice B:\n");
readMatrix(&B);
add(&C, &A, &B);
printMatrix(&C);
system("PAUSE");
return (EXIT_SUCCESS);
}
void readMatrix(TMatrix* matrix) {
for(int i = 0; i < MATRIX_SIZE; i++) {
for(int j = 0; j < MATRIX_SIZE; j++) {
printf("Pozice %d %d: ", i, j);
scanf("%lf", matrix[i][j]);
}
}
}
void add(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2) {
for(int i = 0; i < MATRIX_SIZE; i++) {
for(int j = 0; j < MATRIX_SIZE; j++) {
*matrix[i][j] = *matrix1[i][j] + *matrix2[i][j];
}
}
}
void sub(TMatrix* matrix, const TMatrix* matrix1, const TMatrix* matrix2) {
for(int i = 0; i < MATRIX_SIZE; i++) {
for(int j = 0; j < MATRIX_SIZE; j++) {
*matrix[i][j] = *matrix1[i][j] - *matrix2[i][j];
}
}
}
void printMatrix(const TMatrix* matrix) {
for(int i = 0; i < MATRIX_SIZE; i++) {
for(int j = 0; j < MATRIX_SIZE; j++) {
printf("Pozice %d %d = %f\n", i, j, *matrix[i][j]);
}
}
}