Threese 2018-12-06 04:07
浏览 273

字符串的全排问题(递归函数)

求助 我想解决字符串的全排问题
然后我用的是老虎机的方法 用一个数组来表示输出顺序
方法用的是函数的递归
编译通过了但是运行会无限循环还是溢出

以下是代码

#include <stdio.h>

#define SIZE 100

//prototype
void Process(int k,int n,char string[SIZE],int num[SIZE]);

int main(void)
{
    int num[SIZE];

    for(int i = 0;i < SIZE;i++)
    {
        num[i] = -1;
    } //initialize excluding array

    printf("Please enter a string :\t");
    char string[SIZE];
    scanf("%99s",string); //scan string  The SIZE should be changed handly

    int n = 0;
    for(int i = 0;i < SIZE;i++)
    {
        if(string[i] == '\0');
        {
            n = i;
        }
    } //find out the number of the elements of the string

    Process(0,n,string,num);
}

void Process(int k,int n,char string[SIZE],int num[SIZE])
{
    int judge = 0;

    if(k == n)
    {
        int counter = 0;
        for(int i =0;i < n;i++)
        {
            counter = num[i];
            printf("%c",string[counter]);
        }
        puts("");
    }
    else
    {
        for(int i = 0;i < n;i++)
        {
            for(int i1 = 0;i1 < SIZE;i1++)
            {
                if(num[i1] == i)
                {
                    judge = 1;
                    break;
                }
            }

            if(judge == 1)
            {
                judge = 0;
                continue;
            }
            else if(judge == 0)
            {
                num[k] = i;
                Process(k+1,n,string,num);

                num[k] = -1;
            }
        }
    }
}
  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
    • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
    • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
    • ¥20 腾讯企业邮箱邮件可以恢复么
    • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
    • ¥15 错误 LNK2001 无法解析的外部符号
    • ¥50 安装pyaudiokits失败
    • ¥15 计组这些题应该咋做呀
    • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
    • ¥15 让node服务器有自动加载文件的功能