[C] problem with qsort
For school i have to write code for a embedded system (msp430) wich has to do 2 kinds of sorting.
1st one is a function written by myself called: eigen functie.
2nd one is a qsort function.
One of the 2 functios can be selected by putting eigen funtie or qsort as comment, see the red text.
Now comes the problem when i set eigen funtie as comment, so i want to execute the qsort. I get a strange error: Function argument number mismatch.
Doe anyone know how to solve this?
Thanks in advance.
Here is the code:
#include <msp430x11x1.h>
#include <stdio.h>
#define size 10
// Function prototypes
void eigen_functie(int invoer[]);
void qsort(int invoer[], int links, int rechts);
void swap(int invoer[], int i, int j);
void main(void)
{
int invoer[size] = {69,51,59,55,38,26,21,63,34,84};
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
P2DIR |= BIT4; // Set P2.3 as output
P2OUT |= BIT4; // Set BIT3 (LEDS Off)
TACTL = TASSEL0 + TACLR; // Timer A clock is ACLK + clear
TACTL |= MC1; // Timer A in Continous mode
//eigen_functie(invoer);
qsort(invoer);
TACTL = MC_0;
P2OUT &= ~BIT4; // Clear BIT3 (LEDS On)
}
///////////////////////////////////////////////////////////////
// eigen_functie
///////////////////////////////////////////////////////////////
void eigen_functie(int invoer[])
{
int x,y,aantal; //Declaraties.
int uitvoer[size];
for(x=0;x<size;x++)
{
aantal = 0;
for(y=0;y<size;y++)
{
if (invoer[y]<invoer[x])
{
aantal++;
}
}
uitvoer[aantal]=invoer[x];
}
for(x=0;x<size;x++)
{
invoer[x] = uitvoer[x];
}
}
///////////////////////////////////////////////////////////////
// qsort
///////////////////////////////////////////////////////////////
void qsort(int invoer[], int links, int rechts)
{
int i, laatste;
void swap(int invoer[],int i, int j);
if (links >= rechts) //Doe niets als in dearray minder dan twee elementen staan.
return;
swap(invoer, links, (links + rechts)/2); //Verplaats partitie-element naar invoer[0].
laatste = links;
for(i = links+1; i <= rechts; i++) //Partitie.
if (invoer[i] < invoer[links])
swap(invoer, ++laatste, i);
swap(invoer, links, laatste); //Zet partitie-element terug.
qsort(invoer, links, laatste-1);
qsort(invoer, laatste+1, rechts);
}
void swap(int invoer[], int i, int j) //Swap functie.
{
int temp;
temp = invoer[i];
invoer[i] = invoer[j];
invoer[j] = temp;
}
__________________
Thumbs up
|