Hallo,
ich lerne gerade für meine Informatik-Klausur und hänge bei einer
Aufgabe:
Ich soll eine Funktion erstellen, die Werte vom Typ float eines Arrays
der Größe nach sortiert (1. Element = größter Wert). Es sollen nur
lokale Variablen und zwei verschachtelte For-Schleifen benutzt werden.
meine Idee war:
1 | #include <stdio.h>
|
2 | int x, i, j;
|
3 | float a[100];
|
4 | float Sort(int a[], int n);
|
5 |
|
6 | void main(void)
|
7 | {
|
8 | for (i=0;i<=100;i++) {
|
9 | printf("%f\n",Sort(i));
|
10 | }
|
11 | }
|
12 |
|
13 | float Sort(int a[], int n)
|
14 | {
|
15 |
|
16 | for (i=1; i< n; ++i) // Array an Position i teilen
|
17 | {
|
18 | // x = a[i] einzuordnendes Element
|
19 | for (x=a[i]; x<a[j] && (j>=0); j=i-1) // a[i] solange nach links schieben
|
20 | // bis an der richtige Stelle
|
21 | {
|
22 | a[j+1] = a[j]; // linker Nachbar nach rechts verschieben
|
23 | j--;
|
24 | }
|
25 | a[j+1] = x; //Einfuegen an richtiger Position
|
26 | return x;
|
27 | }
|
28 | }
|
Habt ihr Verbesserungsvorschläge?
MfG Dennis