AKK606 2021-09-28 17:19 采纳率: 63.6%
浏览 22
已结题

这个程序fun()函数的结束是怎么实现的,有点没搞清楚


#include<iostream>
#include<cstring>
using namespace std;
char a[20],b[20];
bool c[20];
int n;
void fun(int);
void print();
int main(){
    cin>>a;
    n=strlen(a);
    fun(1);
    return 0;
}
void fun(int k){
    int i;
    for(i=0;i<n;i++){
        if(!c[i]){
            b[k]=a[i];
            c[i]=1;
            if(k==n)
                print();
            else
                fun(k+1);
            c[i]=0;
        }
    }
}
void print(){
    for(int i=1;i<=n;i++)
        cout<<b[i];
    cout<<endl;
}
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2021-09-28 17:25
    关注

    if(k==n)就不会递归了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月6日
  • 已采纳回答 9月28日
  • 创建了问题 9月28日