c语言题:输出由0,1,2,3组成的数字不重复不同的三位数
2个回答
展开全部
#include <stdio.h>
void perm(int* data, int n, int cur)
{
if (cur == n-1)
{
for (int i = 0; i < n-1 ; ++i)
{
if(data[0] != 0)//不输出0 开头的
{
printf("%d ", data[i]);
}
}
printf("\n");
}
else
{
for (int i = cur; i < n; ++i)
{
int t;
t = data[cur], data[cur] = data[i], data[i] = t;
perm(data, n, cur+1);
t = data[cur], data[cur] = data[i], data[i] = t;
}
}
}
int main(int argc,char **argv)
{
int array[] = {0,1,2,3};
perm(array, sizeof(array)/sizeof(array[0]), 0);
return 0;
}
//共18个
2014-12-18
展开全部
全排列
void main()
{
int i, j, k, n = 0;
for (i = 1; i < 4; i++)
for (j = 0; j < 4; j++)
{
if (i == j)continue;
for (k = 0; k < 4; k++)
if (i != k&&j != k)
{
printf("%d %d %d\n", i, j, k);
n++;
}
}
printf("总计%4d种.", n);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询