diff --git a/myTP/exos/dilatation.c b/myTP/exos/dilatation.c new file mode 100644 index 0000000000000000000000000000000000000000..69a127f2b08a2e31cab0317dd02bea3daa02812f --- /dev/null +++ b/myTP/exos/dilatation.c @@ -0,0 +1,83 @@ +#include <stdio.h> +#include <stdlib.h> + +int get_max(int n, const int* tab) { + int max = tab[0]; + for (int i = 1; i < n; i++) { + if (tab[i] > max) { + max = tab[i]; + } + } + return max; +} + +int **dilatation(int m, int n, const int** tab) { + int **res = (int**) malloc(m * sizeof(int*)); + for (int i = 0; i < m; i++) { + res[i] = (int*) malloc(n * sizeof(int)); + for (int j = 0; j < n; j++) { + int max[5]; + int k = 0; + + max[k] = tab[i][j]; + k += 1; + + if (i > 0) { + max[k++] = tab[i-1][j]; + } + + if (i < m-1) { + max[k++] = tab[i+1][j]; + } + + if (j > 0) { + max[k++] = tab[i][j-1]; + } + + if (j < n-1) { + max[k++] = tab[i][j+1]; + } + + res[i][j] = get_max(k, max); + } + } + return res; +} + +void print_tab(int m, int n, const int** tab) { + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) + { + int debug = tab[i][j]; + printf("%d ", tab[i][j]); + } + printf("\n"); + } + printf("\n"); +} + +int **init_array(int m, int n) { + int **res = (int**) malloc(m * sizeof(int*)); + int k = 1; + for (int i = 0; i < m; i++) + { + res[i] = (int*) malloc(n * sizeof(int)); + for (int j = 0; j < n; j++) + { + res[i][j] = k++; + } + } + return res; + +} + +int main() { + int m = 5, n = 5; + int **tab = init_array(m, n); + + print_tab(m, n, (const int**)tab); + + int** res = dilatation(m, n, (const int **)tab); + + print_tab(m, n, (const int**) res); +} \ No newline at end of file diff --git a/myTP/exos/exo1 b/myTP/exos/exo1 index 4830ca799654e3d0f8a0a5a01f89e063612725c9..6125d65986a2d944cc6a0868d30c3889337a0b9f 100755 Binary files a/myTP/exos/exo1 and b/myTP/exos/exo1 differ diff --git a/myTP/exos/exo1.c b/myTP/exos/exo1.c index 34afff77dc229dc9226d8f085b883167a6e84d74..7d1f7069e40ea29050ebd3b4d59b721716a77600 100644 --- a/myTP/exos/exo1.c +++ b/myTP/exos/exo1.c @@ -15,14 +15,14 @@ void insertionSort(int n, int tab[]); int main(){ int i; - int arr[] = { 64, 34, 25, 12, 22, 11, 90 }; + int arr[] = { 64, 34, 25, 12, 22, 11, 1 }; int n = sizeof(arr)/ sizeof(arr[0]); for (i = 0; i < n; i++) printf("%d ", arr[i]); - //bubbleSort(n,arr); - insertionSort(n,arr); + bubbleSort(n,arr); + //insertionSort(n,arr); printf("\nSorted array: \n"); for (i = 0; i < n; i++) @@ -147,8 +147,7 @@ void bubbleSort(int n, int tab[]){ void insertionSort(int n, int tab[]){ int i; - bool swapped; - + for (i=0;i<n-1;i++){ int tmp = tab[i]; @@ -158,14 +157,8 @@ void insertionSort(int n, int tab[]){ tab[pos] = tab[pos-1]; pos-=1; - } - tab[pos]= tmp; - + tab[pos]= tmp; } +} - - - - -} \ No newline at end of file diff --git a/myTP/test.c b/myTP/test.c index 4b3cc8b4e89858084b9c85154a56bcf537779d6e..680e47918c1b84841f84a9391b623014b41b52dd 100644 --- a/myTP/test.c +++ b/myTP/test.c @@ -2,12 +2,8 @@ #include <stdio.h> - - - void recurse(int n){ - printf("%d", n%2); if(n/2!=0){ @@ -21,17 +17,11 @@ void recurse(int n){ int fibonacci( int i){ - - if(i>1){ return printf("fibo: %u \n",fibonacci(i-1)+fibonacci(i-2)); } return i; - - - - }