diff --git a/tp2/exo1.c b/tp2/exo1.c new file mode 100644 index 0000000..2b21057 --- /dev/null +++ b/tp2/exo1.c @@ -0,0 +1,16 @@ +#include +#include + +void f(int *a, int *b) { + *a = *a ^ *b; + *b = *a ^ *b; + *a = *a ^ *b; +} + +int main() { + int a = 94; + int b = 247; + printf("Before swap : a=%d | b=%d\n", a, b); + f(&a, &b); + printf("After swap : a=%d | b=%d\n", a, b); +} diff --git a/tp2/exo2.c b/tp2/exo2.c new file mode 100644 index 0000000..307f8df --- /dev/null +++ b/tp2/exo2.c @@ -0,0 +1,15 @@ +#include +#include + +int f(int t[]) { + t[0] = t[0] ^ t[1]; + t[1] = t[0] ^ t[1]; + t[0] = t[0] ^ t[1]; +} + +int main() { + int t[3] = {3, 6, 7}; + printf("t = {%d, %d, %d}\n", t[0], t[1], t[2]); + f(t); + printf("t = {%d, %d, %d}\n", t[0], t[1], t[2]); +} diff --git a/tp2/exo3.c b/tp2/exo3.c new file mode 100644 index 0000000..8ddf795 --- /dev/null +++ b/tp2/exo3.c @@ -0,0 +1,19 @@ +#include +#include + +void f(int t[], uint len) { + uint i = 0; + while (i + 1 < len) { + t[i] = t[i] ^ t[i + 1]; + t[i + 1] = t[i] ^ t[i + 1]; + t[i] = t[i] ^ t[i + 1]; + i++; + } +} + +int main() { + int t[3] = {3, 6, 7}; + printf("t = {%d, %d, %d}\n", t[0], t[1], t[2]); + f(t, 3); + printf("t = {%d, %d, %d}\n", t[0], t[1], t[2]); +} diff --git a/tp2/exo4.c b/tp2/exo4.c new file mode 100644 index 0000000..7375791 --- /dev/null +++ b/tp2/exo4.c @@ -0,0 +1,19 @@ +#include +#include + +int f(int t[], uint len, int x) { + uint i = 0; + while (i < len) { + if (t[i] == x) { + return i; + } + i++; + } + return -1; +} + +int main() { + int t[3] = {3, 6, 7}; + printf("emplacement de 6 : %d\n", f(t, 3, 6)); + printf("emplacement de 4 : %d\n", f(t, 3, 4)); +}