#include<stdio.h>int A[100];long sep(int num,int low,int *p,FILE*fp);
void print(int *p,FILE*fp);main()
{
  int num;
  int low=1;
  long count;  if((fp=fopen("f:\\se.txt","a"))!=NULL)  {
  printf("please input a positive integer!\n");
  do
    scanf("%d",&num);
  while(num<0);
  fprintf(fp,"%d\n",num);
  count=sep(num,low,A,fp);
  printf("the total is %ld\n",count);
  fclose(fp);
 }
 else printf("file error!");
}void print(int *p,FILE*fp)
{  int *pi;
   for(pi=A;pi<=p;pi++)
     fprintf(fp,"%d ",*pi);
   fprintf(fp,"\n");
}long sep(int num,int low,int *p,FILE*fp)
{
   static long c=1;
   int i;
   int up;   up=(num-1)/2;
   for(i=low;i<=up;i++)
     {  *(p++)=i;
*p=num-i;
print(p,fp);
c++;
if((*p-1)/2>i)
  sep(num-i,i+1,p,fp);
p--;
      }
  return c;
}