但是和我编写的输出结果一样,都是没有数组中12个元素中的5
但是你贴出来的输出结果中有5呀!你贴的第一行 ------ 2
581011 ------ 就有5
上面的疑问先放下,我怀疑你不会使用windows,那一步一步来。
首先把你的代码改正确,即
#include "stdio.h"
void oneprintCombination(int*arr1,const int length,int start,int getcount,int*tempArr,const int tempLength,int*total1)
{
if(getcount==0)
{
(*total1)++;
for(int index=0;index<tempLength;index++)
{
printf("%d",tempArr[index]);
}
printf("\n");
return;
}
if(getcount>(length-start)||tempLength<getcount||getcount<1)
{
return;
}
for(int i=start;i<length;i++)
{
tempArr[tempLength-getcount]=arr1[i];
oneprintCombination(arr1,length,i+1,getcount-1,tempArr,tempLength,total1);
}
}
int main(int argc,char argv[])
{
int a = 0;
int*total1=&a;
int arr1[]={1,2,3,4,5,6,7,8,9,10,11,12};
int temp1[5];
oneprintCombination(arr1,12,0,5,temp1,5,total1);
printf("\n");
printf("total1:%d\n",(int)*total1);
}
然后
编译,但不需要运行。记下生成的exe文件路径,比如 D:\sources\Cpp001\x64\Debug\test.exe
打开控制台(即 cmd.exe),依次输入
cd /d D:\sources\Cpp001\x64\Debug\
test.exe > a.txt
并回车
然后用记事本打开 D:\sources\Cpp001\x64\Debug\a.txt 看看对不对,不对的话,贴出来