2-2-2.c

来自「2005软件工程师考试下午编程题源代码」· C语言 代码 · 共 33 行

C
33
字号
/*中国系统分析员顾问团,http://www.csai.cn*/
/*程序员下午考试指南书籍源码*/

# include <stdio.h>
#define N 100
void enumall(int n,int r){ 
int i, j, c[N];
  		for(j = 0;j < r; j++ ) c[j] = j; /*形成初始组合*/
  		for(j = 0;j < r; j++ )  printf("\t%d",c[j]);
  		printf("\n");
    		i = r-1;
    		do{ 
if (c[i] < n-r+i) {/*如调整c[i]是可接受的*/
       			c[i]++; /*递增c[i]*/
            		for(j = i + 1;j < r; j++)  /*完成一个组合*/
        				c[j] = c[j-1] + 1;
            		for(j = 0;j < r; j++)  printf ("\t%d",c[j]);
      			printf("\n");
              	i = r-1;
         		}
         		else i--;/*回溯*/
  		}while (i >= 0 );
}

main(){
int n, r;
  		do{ 
printf("Enter n, r:\n");
  			scanf("%d %d",&n,&r);
  		} while ( n < r );
 	 	enumall(n,r);
} 

⌨️ 快捷键说明

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