C语言如何实现任意数排列组合,新手求助,急
新手求助,需要实现的情况是这样的:第一组数:1、3、4,7第二组数:2、5、8、10,第三组数:6、9、11、12,要求每组至多任意抽出一个数字组成两个数的所有组合,例如...
新手求助,需要实现的情况是这样的:第一组数:1、3、4,7第二组数:2、5、8、10,第三组数:6、9、11、12,要求每组至多任意抽出一个数字组成两个数的所有组合,例如:1、5或2、11或3、9,用C语言实现,希望能给出个完整的已调试好程序,不甚感谢,给你20分
展开
展开全部
求排列组合没有简单方法。方法只有一个,枚举。
有几个位置需要列举,就需要几个循环。如果循环数量太多,可以用函数递归来枚举。
例程:
#include<stdio.h>
int main(){
int a[4]={1,3,4,7}; //第一个位置
int b[4]={2,5,8,10}; //第二个位置
int c[4]={6,9,11,12}; //第三个位置
int i,j,k;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
printf("%d %d %d\n,",a[i],b[j],c[k]);//输出一种排列
getch();
return 0;
}
展开全部
#include<stdio.h>
main(){
int a[4]={1,3,4,7};
int b[4]={2,5,8,10};
int c[4]={6,9,11,12};
int i,j,n;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{printf("%d&%d\t,",a[i],b[j]);
printf("%d&%d\t,",a[i],c[j]);
printf("%d&%d\t,",b[i],c[j]);
}
getch();
}
main(){
int a[4]={1,3,4,7};
int b[4]={2,5,8,10};
int c[4]={6,9,11,12};
int i,j,n;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{printf("%d&%d\t,",a[i],b[j]);
printf("%d&%d\t,",a[i],c[j]);
printf("%d&%d\t,",b[i],c[j]);
}
getch();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int a[3][4]={{1,3,4,7},{2,5,8,10},{6,9,11,12}};
int i,j,x,y;
srand((unsigned)time(NULL));
i=rand()%3;
x=rand()%3;
j=rand()%4;
y=rand()%4;
printf("%d",a[i][j]);
printf(" %d\n",a[x][y]);
return 0;
}
#include <stdlib.h>
#include <time.h>
int main()
{
int a[3][4]={{1,3,4,7},{2,5,8,10},{6,9,11,12}};
int i,j,x,y;
srand((unsigned)time(NULL));
i=rand()%3;
x=rand()%3;
j=rand()%4;
y=rand()%4;
printf("%d",a[i][j]);
printf(" %d\n",a[x][y]);
return 0;
}
参考资料: 可能因为编译环境的改变产生一些小问题,楼主请自己改正
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有几个位置需要列举,就需要几个循环。如果循环数量太多,可以用函数递归来枚举。
例程:
12345678910111213 #include<stdio.h>int main(){ int a[4]={1,3,4,7}; //第一个位置 int b[4]={2,5,8,10}; //第二个位置 int c[4]={6,9,11,12}; //第三个位置 int i,j,k; for(i=0;i<4;i++) for(j=0;j<4;j++) for(k=0;k<4;k++) printf("%d %d %d\n,",a[i],b[j],c[k]);//输出一种排列 getch(); return 0;}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询