⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 递归列出所有的条目.txt

📁 中过科学技术大学历年复试机试题
💻 TXT
字号:
#include<stdio.h>
#include<stdlib.h>

int fin(int m,int n,int k,int* p){
	int j=0,q=0,h=k;

	int* a=NULL;
    a=(int*)malloc(sizeof(int)*(m+1));
	
	for(j=1;j<=m;j++)a[j]=p[j];
	
	j=m;q=a[k];
    

	if((k<1)||k>m)return 0;
	
	while(((a[k]<a[k+1]-1)||k==m)&&(a[k]<n)){ 
	  j=m;
	  a[k]++;
	  while(j>0){
		   if(j!=k)printf("%d ",a[j]);
		   else printf("%d ",a[j]); 
		   j--;
	  }
	  printf("\n");
	  
	  fin(m,n,h-1,a);
	  
	  printf("\n");
	  
	}
    free(a);
	return 1;
}	


void main(){
  
 int m,n;
 int i=1,k=0,j;
 int *p; 
 FILE *fp;
 if((fp=fopen("D:\\yt\\yt12.txt","r"))==NULL){
      printf("file open error\n");
      exit(1);
 }
 
 while(!feof(fp)){
    m=0;
 	n=0; 
    fscanf(fp,"%d%d",&m,&n);
	
	if(m>n||n<=0||m<=0){
		     printf("m=%d n=%d  error!\n",m,n);
	         continue;
	}
    
	
	printf("********************start*********************\n\n");
    printf("m=%d  n=%d\n",m,n);

	if(m==n){ 
	         while(i<=n)printf("%d ",i);
	         printf("\n");
			 exit(2);
	}
  
    if(m<n){
	        i=m;
            p=(int*)malloc(sizeof(int)*(m+1));
			for(j=1;j<=m;j++)p[j]=0;
			while(i>0){
				printf("%d ",i);
				p[i]=i;
         
	            i--;
			}
			printf("\n");
			fin(m,n,m,p);
		
	        free(p);	
	}
   printf("*******************end**********************\n"); 		
 }   	   
	
 fclose(fp);
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -