From 5c63ff41a51771b14f643dd78623392e5bba8f6c Mon Sep 17 00:00:00 2001 From: Peter Gerwinski <peter.gerwinski@hs-bochum.de> Date: Mon, 5 Jun 2023 16:31:05 +0200 Subject: [PATCH] =?UTF-8?q?Weitere=20Beispiele:=20C-Array=20zur=C3=BCckgeb?= =?UTF-8?q?en,=205.6.2023?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 20230605/array-param-06.c | 30 ++++++++++++++++++++++++++++++ 20230605/array-param-07.c | 37 +++++++++++++++++++++++++++++++++++++ 20230605/array-param-08.c | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) create mode 100644 20230605/array-param-06.c create mode 100644 20230605/array-param-07.c create mode 100644 20230605/array-param-08.c diff --git a/20230605/array-param-06.c b/20230605/array-param-06.c new file mode 100644 index 0000000..f3f08ff --- /dev/null +++ b/20230605/array-param-06.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> + +int read_something (int **a) +{ + int n; + printf ("Wie viele Zahlen? "); + scanf ("%d", &n); + int *b = malloc (n * sizeof (int)); + for (int i = 0; i < n; i++) + { + printf ("%d. Zahl: ", i + 1); + scanf ("%d", b + i); /* andere Schreibweise: &a[i] */ + } + if (a) + *a = b; + return n; +} + +int main (void) +{ + int *x = NULL; + int numbers_read = read_something (&x); + printf ("%d eingegebene Zahlen:", numbers_read); + for (int i = 0; i < numbers_read; i++) + printf (" %d", x[i]); + printf ("\n"); + free (x); + return 0; +} diff --git a/20230605/array-param-07.c b/20230605/array-param-07.c new file mode 100644 index 0000000..0783eac --- /dev/null +++ b/20230605/array-param-07.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> + +int read_something (int **a) +{ + int i = 0; + printf ("Zum Beenden: -1 eingeben\n"); + int n = 1; + int *b = malloc (n * sizeof (int)); + do + { + if (i + 1 >= n) + { + n *= 2; + b = realloc (b, n * sizeof (int)); + } + printf ("%d. Zahl: ", i + 1); + scanf ("%d", b + i); /* andere Schreibweise: &a[i] */ + i++; + } + while (b[i - 1] >= 0); + if (a) + *a = b; + return n; +} + +int main (void) +{ + int *x = NULL; + int numbers_read = read_something (&x); + printf ("%d eingegebene Zahlen:", numbers_read); + for (int i = 0; i < numbers_read; i++) + printf (" %d", x[i]); + printf ("\n"); + free (x); + return 0; +} diff --git a/20230605/array-param-08.c b/20230605/array-param-08.c new file mode 100644 index 0000000..551620e --- /dev/null +++ b/20230605/array-param-08.c @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> + +int read_something (int **a) +{ + int i = 0; + printf ("Zum Beenden: -1 eingeben\n"); + int n = 1; + int *b = malloc (n * sizeof (int)); + do + { + if (i + 1 >= n) + { + n *= 2; + b = realloc (b, n * sizeof (int)); + } + printf ("%d. Zahl: ", i + 1); + scanf ("%d", b + i); /* andere Schreibweise: &a[i] */ + i++; + } + while (b[i - 1] >= 0); + if (a) + *a = b; + return i - 1; +} + +int main (void) +{ + int *x = NULL; + int numbers_read = read_something (&x); + printf ("%d eingegebene Zahlen:", numbers_read); + for (int i = 0; i < numbers_read; i++) + printf (" %d", x[i]); + printf ("\n"); + free (x); + return 0; +} -- GitLab