关于C语言全排列的题目

想编一个关于数字全排列的程序,但输入代码之后没有任何结果产生,想知道是什么原因

 

 

#include<stdio.h>
int main(void)
{
int n,temp;
int i,j;
int A[50];
printf("请输入n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{A[i-1]=i;}
for(j=1;j<n;j++)
{for(i=0;i<=n;i++)
{
if(i=n)
continue;
else
{
temp=A[i+1];
A[i+1]=A[i];
A[i]=temp;
for(i=0;i<n;i++)
printf("A[i] ");
printf("\n");
}
}
}

}

#include<stdio.h>
int main(void)
{
    int n,temp;
    int i,j;
    int A[50];
    printf("请输入n:");
    scanf("%d",&n);
    for(i=0; i<n; i++)
    {
        A[i]=i;
    }
    for(j=0; j<n; j++)
    {
        for(i=0; i<=n; i++)
        {
            if(i==n)
                continue;
            else
            {
                temp=A[i+1];
                A[i+1]=A[i];
                A[i]=temp;
                for(i=0; i<n; i++)
                    printf("%d ",A[i]);
                printf("\n");
            }
        }
    }

}

第17行你的判断条件应该写==你少写了一个 

#include<stdio.h>
#include<string.h>
void swap(char *a,char *b)
{
	char temp;
	temp = *a;
	*a = *b;
	*b = temp;	
}

void  Allarrange(char *str,int k,int len)
{
	int i;
	if(k==len)
	{
		static int s_i=1;
		printf("第%d种排列为:\t%s\n",s_i++,str);
	}
	else
	{
		for(i=k;i<=len;i++)
		{
			swap(str+i,str+k);
			Allarrange(str,k+1,len);
			swap(str+i,str+k);
		}
	}
}

int main()
{
	char str[10];
	printf("请输入排列的字符串:"); 
	gets(str);
	Allarrange(str,0,strlen(str)-1);
	return 0;
}

 

不太懂

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员年卡【8折】购 ,限时加赠IT实体书,即可 享受50次 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m