Up: Pointer-Arithmetik
Previous: Zweidimensionale Arrays
#include <iostream.h>
extern "C" {
#include <stdlib.h> // for atoi()
}
const int MAXNUM=10;
void exchange(int *a, int *b)
{ int t=*a;
*a=*b;
*b=t;
}
void print_list(int list[], int list_size)
{ for (int j=0; j<list_size; j++)
cout << "list[" << j << "]=" << list[j] << endl;
cout << endl;
}
void bubble_sort(int list[], int list_size)
{ int sorted = FALSE;
while (!sorted)
{
sorted = TRUE;
for (int j=0; j<list_size - 1; j++)
{
if (list[j] > list[j+1])
{
sorted = FALSE;
exchange(&list[j], &list[j+1]);
}
}
}
}
main(int argc, char **argv)
{ int a[MAXNUM], i;
const int size = argc - 1;
if ((argc-1 < 2) || (argc-1 >MAXNUM))
{ cerr << "Usage: " << argv[0]
<< " number1 number2 [... number"
<< MAXNUM <<"]" << endl;
exit(1);
}
i=0;
while(--argc)
a[i++] = atoi(*++argv);
print_list(a, size); // print unsorted
bubble_sort(a, size); // sort array
print_list(a, size); // print list
}
Up: Pointer-Arithmetik
Previous: Zweidimensionale Arrays