uint8_t buf[] = {7,8,9,1,2,3,4,5,6};
#define change(src, a, b) if((a) > (b)){(src) = (a); (a) = (b); (b) = (src);}
void main()
{
uint8_t tmp;
change(tmp, buf[0], buf[1]);
change(tmp, buf[0], buf[2]);
change(tmp, buf[0], buf[3]);
change(tmp, buf[0], buf[4]);
change(tmp, buf[0], buf[5]);
change(tmp, buf[0], buf[6]);
change(tmp, buf[0], buf[7]);
change(tmp, buf[0], buf[8]);
change(tmp, buf[1], buf[2]);
change(tmp, buf[1], buf[3]);
change(tmp, buf[1], buf[4]);
change(tmp, buf[1], buf[5]);
change(tmp, buf[1], buf[6]);
change(tmp, buf[1], buf[7]);
change(tmp, buf[1], buf[8]);
change(tmp, buf[2], buf[3]);
change(tmp, buf[2], buf[4]);
change(tmp, buf[2], buf[5]);
change(tmp, buf[2], buf[6]);
change(tmp, buf[2], buf[7]);
change(tmp, buf[2], buf[8]);
change(tmp, buf[3], buf[4]);
change(tmp, buf[3], buf[5]);
change(tmp, buf[3], buf[6]);
change(tmp, buf[3], buf[7]);
change(tmp, buf[3], buf[8]);
change(tmp, buf[4], buf[5]);
change(tmp, buf[4], buf[6]);
change(tmp, buf[4], buf[7]);
change(tmp, buf[4], buf[8]);
change(tmp, buf[5], buf[6]);
change(tmp, buf[5], buf[7]);
change(tmp, buf[5], buf[8]);
change(tmp, buf[6], buf[7]);
change(tmp, buf[6], buf[8]);
change(tmp, buf[7], buf[8]);
}