Aufruf von Funktionen(Array schreiben, Array sortieren, Ausgeben).
-
Hallo miteinander,
soll für die Uni ein Programm schreiben. Dabei soll man ein Array schreiben, dieses sortieren und dann ausgeben. ich bin ein blutiger Anfänger. Für jeden Kritik bin ich also dankbar
code :
/*
* test.c
*
* Created on: 05.07.2013
* Author: michi
*/
#include <stdio.h>
#include <stdlib.h>#define MAX 5
struct array { int wert[MAX];};
struct array eingeben(void)
{
int i;
struct array z;for(i=0; i<sizeof(struct array)/sizeof (int);i++)
{
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++)
{
k=i;
u=array[i]; //startwertfor (j=i+1;i<AnzS;i++)
{
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;
orderArray(a, MAX);
schreiben(a, MAX);return 0;
}bei der main Funktion und den Übergabeparametern bin ich mir unsicher und ich denke da liegt der Fehler. Ich komm aber einfach nicht auf die Lösung.
Hilfe wäre super
Gruß michael
-
/* * 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; }