Ein Lösungsvorschlag zur Aufgabe Array-Sort.
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
/*
Sortieren eines int-Arrays
@author: www.c-howto.de
@param *x: Zeiger auf int-Array
@param size: Groesse des Arrays
*/
void arraySort(int *x, int size) {
int i, temp, minIndex;
for(i=0; i<size-1; i++) {
minIndex = arrayMinIndex(x, i, size);
if(i != minIndex) {
temp = x[i];
x[i] = x[minIndex];
x[minIndex] = temp;
}
}
}
/*
Ermittle Index des Minimum-Wertes eines int-Arrays
beginnend ab start bis zum Ende des Arrays
@author: www.c-howto.de
@param *x: Zeiger auf int-Array
@param start: Startposition, ab der nach Minimum gesucht werden soll
@param size: Groesse des Arrays
*/
int arrayMinIndex(int *x, int start, int size) {
int minIndex=start, i;
for(i=start; i<size; i++) {
if(x[i] < x[minIndex]) {
minIndex = i;
}
}
return minIndex;
}
void fillArray(int *x,int rows, int cols) {
srand(time(NULL));
int c=1, i, j;
for(i=0; i<rows; i++) {
for(j=0; j<cols; j++) {
*(x+(i*cols)+j) = rand() % 20;
c++;
}
}
}
void printArray(int *x, int rows, int cols) {
int i, j;
printf("\n\n");
for(i=0; i<rows; i++) {
for(j=0; j<cols; j++) {
printf(" %d",*(x+(i*cols)+j));
}
printf("\n");
}
}
int main() {
// Test
int a[5];
fillArray(&a[0], 1, 5);
printArray(&a[0], 1, 5);
arraySort(&a[0], 5);
printArray(&a[0], 1, 5);
return 0;
}
