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