What about this?:
#define N 3
double maxArea[N] = {0};
CvSeq *countours[N], *tmp_cont;
double tmp_area;
for(;cont;cont = cont->h_next)
{
area = fabs(cvContourArea(cont, CV_WHOLE_SEQ));
printf("area == %lf\n", area);
for(int i = N-1; i >= 0; --i)
{
if(area > maxArea[i])
{
maxArea[i] = area;
countours[i] = cont;
for(int j = (i-1); j >= 0; --j)
{
if(maxArea[j] < maxArea[j+1])
{
tmp_area = maxArea[j+1];
tmp_cont = contours[j+1];
maxArea[j+1] = maxArea[j];
contours[j+1] = contours[j];
maxArea[j] = tmp_area;
contours[j] = tmp_cont;
}
}
break;
}
}
}