Skip to content
Snippets Groups Projects
Commit 2f4b8f90 authored by Peter Gerwinski's avatar Peter Gerwinski
Browse files

Beispielprogramme 7.1.2016

parent 7a4d4ff0
No related branches found
No related tags found
No related merge requests found
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int *buffer = NULL;
buffer = malloc (24 * sizeof (int)); /* 42 Integer-Variable anlegen */
/* ^^ Zahlendreher infolge Code-Verdopplung! */
for (int i = 0; i < 42; i++)
buffer[i] = i;
/* free() vergessen! :-( */
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int *buffer = NULL;
buffer = malloc (24 * sizeof (int)); /* 42 Integer-Variable anlegen */
/* ^^ Zahlendreher infolge Code-Verdopplung! */
for (int i = 0; i < 1042; i++)
buffer[i] = i;
/* free() vergessen! :-( */
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int *buffer = NULL;
buffer = malloc (24 * sizeof (int)); /* 42 Integer-Variable anlegen */
/* ^^ Zahlendreher infolge Code-Verdopplung! */
for (int i = 0; i < 42000; i++)
buffer[i] = i;
/* free() vergessen! :-( */
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int *buffer = NULL;
buffer = malloc (24 * sizeof (int)); /* 42 Integer-Variable anlegen */
/* ^^ Zahlendreher infolge Code-Verdopplung! */
for (int i = 0; i < 42000; i++)
{
printf ("i = %d\n", i);
buffer[i] = i;
}
/* free() vergessen! :-( */
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define SIZE 42
int main (void)
{
int *buffer = NULL;
buffer = malloc (SIZE * sizeof (int)); /* SIZE Integer-Variable anlegen */
for (int i = 0; i < SIZE; i++)
buffer[i] = i;
free (buffer);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int comp_counter = 0;
void clear_screen (void)
{
printf ("\e[H\e[J");
}
void output_marked (char **name, int mark1, int mark2)
{
clear_screen ();
for (int i = 0; name[i]; i++)
if (i == mark1 || i == mark2)
printf ("%s <--\n", name[i]);
else
printf ("%s\n", name[i]);
printf ("%d\n", comp_counter);
}
void output (char **name)
{
output_marked (name, -1, -1);
}
int compare (char **name, int left, int right)
{
comp_counter++;
output_marked (name, left, right);
usleep (200000);
return strcmp (name[left], name[right]);
}
void sort (char **name)
{
int target = 0;
while (name[target])
target++; /* Länge des Arrays ermitteln */
int start = 1;
while (target > 0)
{
for (int i = start; i < target; i++)
if (compare (name, i - 1, i) > 0)
{
char *temp = name[i - 1];
name[i - 1] = name[i];
name[i] = temp;
}
target--;
}
}
int main (void)
{
char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter",
"Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans",
"Thomas", "Ulrich", "Zacharias", NULL };
sort (name);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int comp_counter = 0;
void clear_screen (void)
{
printf ("\e[H\e[J");
}
void output_marked (char **name, int mark1, int mark2)
{
clear_screen ();
for (int i = 0; name[i]; i++)
if (i == mark1 || i == mark2)
printf ("%s <--\n", name[i]);
else
printf ("%s\n", name[i]);
printf ("%d\n", comp_counter);
}
void output (char **name)
{
output_marked (name, -1, -1);
}
int compare (char **name, int left, int right)
{
comp_counter++;
output_marked (name, left, right);
usleep (200000);
return strcmp (name[left], name[right]);
}
void sort (char **name)
{
int target = 0;
while (name[target])
target++; /* Länge des Arrays ermitteln */
int start = 1;
int last_swap = 0;
while (target > 0)
{
for (int i = start; i < target; i++)
if (compare (name, i - 1, i) > 0)
{
last_swap = i;
char *temp = name[i - 1];
name[i - 1] = name[i];
name[i] = temp;
}
target = last_swap;
}
}
int main (void)
{
char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter",
"Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans",
"Thomas", "Ulrich", "Zacharias", NULL };
sort (name);
return 0;
}
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int comp_counter = 0;
void clear_screen (void)
{
printf ("\e[H\e[J");
}
void output_marked (char **name, int mark1, int mark2)
{
clear_screen ();
for (int i = 0; name[i]; i++)
if (i == mark1 || i == mark2)
printf ("%s <--\n", name[i]);
else
printf ("%s\n", name[i]);
printf ("%d\n", comp_counter);
}
void output (char **name)
{
output_marked (name, -1, -1);
}
int compare (char **name, int left, int right)
{
comp_counter++;
output_marked (name, left, right);
usleep (200000);
return strcmp (name[left], name[right]);
}
void sort (char **name)
{
int target = 0;
while (name[target])
target++; /* Länge des Arrays ermitteln */
int start = 1;
while (target > 0)
{
int last_swap = 0;
for (int i = start; i < target; i++)
if (compare (name, i - 1, i) > 0)
{
last_swap = i;
char *temp = name[i - 1];
name[i - 1] = name[i];
name[i] = temp;
}
target = last_swap;
}
}
int main (void)
{
char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter",
"Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans",
"Thomas", "Ulrich", "Zacharias", NULL };
sort (name);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
int comp_counter = 0;
void clear_screen (void)
{
printf ("\e[H\e[J");
}
void output_marked (char **name, int mark)
{
clear_screen ();
for (int i = 0; name[i]; i++)
if (i == mark)
printf ("%s <--\n", name[i]);
else
printf ("%s\n", name[i]);
printf ("%d\n", comp_counter);
}
void output (char **name)
{
output_marked (name, -1);
}
int compare (char **name, int left, char *right)
{
comp_counter++;
output_marked (name, left);
usleep (100000);
return strcmp (name[left], right);
}
void sort (char **name, int left, int right) /* QuickSort */
{
if (left < right)
{
int middle = left + rand () % (right - left + 1);
char *test = name[middle];
int l = left;
int r = right;
while (l <= r)
{
while (compare (name, l, test) < 0)
l++;
while (compare (name, r, test) > 0)
r--;
if (l <= r)
{
char *temp = name[l];
name[l] = name[r];
name[r] = temp;
l++;
r--;
}
}
sort (name, left, r);
sort (name, l, right);
}
}
int main (void)
{
char *names[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter",
"Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans",
"Thomas", "Ulrich", "Zacharias", NULL };
srand (13);
sort (names, 0, 15);
output (names);
return 0;
}
#include <stdio.h>
#include <string.h>
void sort (char **name)
{
int target = 0;
while (name[target])
target++; /* Länge des Arrays ermitteln */
while (target > 0)
{
for (int i = 1; i < target; i++)
if (strcmp (name[i - 1], name[i]) > 0)
{
char *temp = name[i - 1];
name[i - 1] = name[i];
name[i] = temp;
}
target--;
}
}
int main (void)
{
char *name[] = { "Otto", "Lisa", "Anna", "Heinrich", "Siegfried", "Peter",
"Dieter", "Hugo", "Berta", "Maria", "Fritz", "Box", "Hans",
"Thomas", "Ulrich", "Zacharias", NULL };
sort (name);
for (int i = 0; name[i]; i++)
printf ("%s\n", name[i]);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment