/*
* test.c
*
* Created on: 05.07.2013
* Author: michi
*/
#include <stdio.h>
#include <stdlib.h>
#define MAX 5 /* ganz schlechte Namensgebung */
struct array { int wert[MAX];};
struct array eingeben(void)
{
int i;
struct array z;
for(i=0; i<sizeof(struct array)/sizeof (int);i++) /* sizeof(struct) muss nicht gleich sizeof(array) sein, deshalb falsch; einfach MAX verwenden */
{
printf("Wert an der Stelle %d eingeben:", i);
scanf("%d",&z.wert[i]);
}
return z;
}
// array z sortieren
void orderArray(int array[], int AnzS )
{
int i, j, k, u;
for (i=0;i<=AnzS-1;i++) /* muss < statt <= heißen */
{
k=i;
u=array[i]; //startwert
for (j=i+1;i<AnzS;i++) /* i und j verwechselt */
{
if(array[j]<u)
{
u=array[j];
k=j;
}
}
array[i]=array[j];
array[j]=k;
}
}
void schreiben(int array[], int AnzS)
{
int i ;
for(i=0;i<AnzS;i++)
{
printf("%d" , array[i]);
}
}
int main(void)
{
struct array ptr2;
int a[MAX];
ptr2=eingeben();
ptr2.wert=a; /* das funktioniert nicht; Arrays kann man in C nicht direkt zuweisen */
orderArray(a, MAX);
schreiben(a, MAX);
return 0;
}