能不能把你写的 求1到10共10个数中取出3个不同的数,共有多少种组合方式 的程序发给我?谢谢

各位牛人能人快来帮帮我吧... 各位牛人 能人 快来帮帮我吧 展开
JX_XiaOh
2011-12-12 · 超过19用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:53.4万
展开全部
#include<stdio.h>
#define N1 10
#define N2 10
#define N3 10
//改变N1 N2 N3 的值就可以求其他的组合了
main()
{
int i,j,k,n,
Ispass=1,//判断重复检验是否通过的 0 or 1 变量
count=0;//计数器

int a[N1],b[N2],c[N3];

//清零
for(i=0;i<N1;i++)
a[i]=0;
for(j=0;j<N2;j++)
b[j]=0;
for(k=0;k<N3;k++)
c[k]=0;

for(i=0;i<N1;i++)
{
Ispass=1;
a[i]=i+1;

for(j=0;j<N2;j++)
{
Ispass=1;
if(i==j) continue;

//检验要赋给b的值是否已经在a中出现过
for(n=0;n<N1;n++)
{
if(a[n]==0) continue;
if(a[n]==j+1)
{
Ispass=0;
break;
}
}

if(Ispass==0) continue;

b[j]=j+1;

for(k=0;k<N3;k++)
{
Ispass=1;
if(i==k||j==k) continue;

//检验要赋给c的值是否在a中重复出现过
for(n=0;n<N1;n++)
{
if(a[n]==0) continue;
if(a[n]==k+1)
{
Ispass=0;
break;
}
}

if(Ispass==0) continue;

//检验要赋给c的值是否在b中重复出现过
for(n=0;n<j;n++)
{
if(b[n]==0) continue;
if(b[n]==k+1)
{
Ispass=0;
break;
}
}

if(Ispass==0) continue;

c[k]=k+1;
count++;
printf("%d %d %d\n",a[i],b[j],c[k]);
}
}
}
printf("%d",count);
getchar();
}
高手看了请轻喷= =
七杯咖啡
2012-11-09
知道答主
回答量:5
采纳率:0%
帮助的人:7708
展开全部
#include<stdio.h>
long fac(int n)
{
if (n==1)
return 1l;
else
return n*fac(n-1);
}
void main()
{
int m,n,c;
m=10,n=3;
c=fac(m)/(fac(n)*(fac(m-n)));
printf("共有%d种组合方式\n",c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiping100
2011-12-11 · TA获得超过261个赞
知道答主
回答量:114
采纳率:0%
帮助的人:71.8万
展开全部
10*9*8/3*2*1=120
追问
我要C语言的耶
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
戎善静04q
2011-12-11 · TA获得超过524个赞
知道答主
回答量:618
采纳率:0%
帮助的人:356万
展开全部
????
更多追问追答
追问
你会吗?
追答
程序?电脑问题吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式