一个程序,看不懂,谁帮我详细解释下 啊
#include<stdio.h>#include<string>
char ch[15][12];
char mx[560];
char tmp[560];
char flag ;
int val[15],n;
void fun(int pos)
{
if(pos==n)
{
tmp[0]=0;
for(int i=0;i<pos;i++)
strcat(tmp,ch[val[i]]);
if(strcmp(tmp,mx)>0)
strcpy(mx,tmp);
return;
}
for(int i=0;i<n;i++)
{
flag=0;
for(int j=0;j<pos;j++)
if(i==val[j])
flag=1;
if( flag==0)
{
val[pos]=i;
fun(pos+1);
}
}
}
int main()
{
while(scanf("%d",&n)>0)
{
for(int i=0;i<n;i++)
scanf("%s",ch[i]);
mx[0]=0;
fun(0);
printf("%s\n",mx);
}
return 0;
}