Skip to content
Snippets Groups Projects
Commit 81fccf8d authored by florian.burgener's avatar florian.burgener
Browse files

Exercice 1

parent 022e2f16
No related branches found
No related tags found
No related merge requests found
......@@ -16,30 +16,75 @@
#include <stdlib.h>
#include <string.h>
double **matrix_init(int m, int n) {
double **matrix = (double **)malloc(sizeof(double *) * m);
for (int i = 0; i < m; i += 1) {
matrix[i] = (double *)malloc(sizeof(double) * n);
for (int j = 0; j < n; j += 1) {
matrix[i][j] = sqrt(i + j);
}
}
return matrix;
}
void matrix_destroy(double **matrix, int m) {
for (int i = 0; i < m; i += 1) {
free(matrix[i]);
}
free(matrix);
}
void matrix_print(double **matrix, int m, int n) {
for (int i = 0; i < m; i += 1) {
for (int j = 0; j < n; j += 1) {
printf("%lf ", matrix[i][j]);
}
printf("\n");
}
}
double **matrix_average(double **matrix, int m, int n) {
double **output = matrix_init(m, n);
for (int i = 0; i < m; i += 1) {
for (int j = 0; j < n; j += 1) {
double value = 0;
if (i >= 1 && i <= m - 2 && j >= 1 && j <= n - 2) {
value += matrix[i][j];
value += matrix[i + 1][j];
value += matrix[i - 1][j];
value += matrix[i][j + 1];
value += matrix[i][j - 1];
value /= 5;
} else {
value = matrix[i][j];
}
output[i][j] = value;
}
}
return output;
}
int main() {
// int32_t values_length = 5;
// double values[values_length];
// for (int32_t i = 0; i < values_length; i += 1) {
// double value;
// scanf("%lf", &value);
// values[i] = value;
// }
// int32_t values_length = 5;
// int32_t values[values_length];
// for (int32_t i = 0; i < values_length; i += 1) {
// int32_t value;
// scanf("%d", &value);
// values[i] = value;
// }
// char a[100];
// int32_t b;
// scanf("%s %d", a, &b);
// printf("%s %d\n", a, b);
printf("ex1\n");
int m = 5;
int n = 4;
double **M = matrix_init(m, n);
for (int i = 0; i < 10; i += 1) {
double **N = matrix_average(M, m, n);
matrix_destroy(M, m);
M = N;
}
matrix_print(M, m, n);
matrix_destroy(M, m);
return EXIT_SUCCESS;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment