求救!!软考的算法问题。。
						问题描述:找出从自然数1,2,…,n中任取r个数的所有组合。
    采用回溯法找问题的解,将找到的组合以从小到大顺序存于a[0],a[1],…,a[r-1]中,组合的元素满足以下性质:
    (1) a[i+1]>a[i],后一个数字比前一个大;
    (2) a[i]-i<=n-r+1。
    按回溯法的思想,我编程如下:
#include "stdio.h" 
#define MAXN 100
int a[MAXN];
void comb(int m,int r )
{
int i,j;
i=0;
a[i]=1;
do {
        if (a[i]-i<=m-r+1)
        {
        if(i==r-1)
                {
                        for (j=0;j<r ;j++)
                        {
                        printf("%4d",a[j]);
                        printf("\n---------------------------\n");
                        }
                }
                
                a[++i]++;
                continue;
        }
        else
        {
        if(i==0) return;
        a[--i]++;
        }
} while(1);
}
void main()
{
        comb(5,3);
}
可运行后没有结果,为什么呢?