当前位置:首页 » 编程语言 » 4个数有多少组合c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

4个数有多少组合c语言

发布时间: 2022-09-19 00:43:54

❶ 我有四个数(如1,3,6,7)怎么用c语言编写:四个数所有排列组合

#include<stdio.h>

#include<stdlib.h>

voidswap(int&a,int&b)

{

inttemp=a;

a=b;

b=temp;

}

voidPermutation(int*pStr,intbegin,intend)

{

if(begin==end-1)//只剩一个元素

{

inti;

for(i=0;i<end;i++)//打印

printf("%d",pStr[i]);

printf(" ");

}

else

{

intk;

for(k=begin;k<end;k++)

{

swap(pStr[k],pStr[begin]);//交换两个字符

Permutation(pStr,begin+1,end);

swap(pStr[k],pStr[begin]); //恢复

}

}

}

intmain()

{

inta[]={1,3,6,7};

Permutation(a,0,4);

getchar();

return0;

}

❷ 任意输入4个不同的数,判断这4个数最多可以组合成多少个数 c语言

/*Note:YourchoiceisCIDE*/

#include<stdio.h>

intmain(void)

{

inta[4]={1,2,0,4};

inti,j,k,l;

intb[64],t,n;

scanf("%d%d%d%d",&a[0],&a[1],&a[2],&a[3]);

t=0;

for(i=0;i<4;i++)

{

b[t]=a[i];

t++;

if(a[i]==0)

continue;

for(j=0;j<4;j++)if(i!=j)

{

b[t]=a[i]*10+a[j];

t++;

for(k=0;k<4;k++)if(i!=k&&j!=k)

{

b[t]=a[i]*100+a[j]*10+a[k];

t++;

for(l=0;l<4;l++)if(i!=l&&j!=l&&k!=l)

{

b[t]=a[i]*1000+a[j]*100+a[k]*10+a[l];

t++;

}

}

}

}

n=t;

for(i=1;i<n;i++)

{

t=b[i];

for(j=i-1;j>=0;j--)

{

if(b[j]>t)

b[j+1]=b[j];

elsebreak;

}

b[j+1]=t;

}

for(i=0;i<n;i++)

{

printf("%d ",b[i]);

if((i+1)%5==0)

printf(" ");

}

return0;

}

❸ 4个不同的数字有多少种排列组合

根据题目可知,我们可设4个不同的数字分别为a,b,c,d,那么计算排列组合数,可以采用以下几种方法:

1、枚举法

abcd、abdc,acbd,acdb,adbc,adcb,bacd,badc,bcad,bcda,bdac,bdca,cabd,cadb,cbad,cbda,cdab,cdba,dabc,dacb,dbac,dbca,dcab,dcba。

2、公式法

全排列公式

❹ C语言编写一个程序,真心求教:1.2.3.4四个数,能组合成多少个不同的三位数,都是多少

这是一个简单的排列组合,三位数,每位都有四个数字可以选择,所以就是4*4*4种组合,具体如下,不明白的话可以给你讲讲
#include <stdio.h>
int main()
{
int i,a,b,c;
int num;
i = 1;
for(a = 1; a <= 4; a++) //百位循环
for(b = 1; b <= 4; b++)//十位循环
for(c = 1; c <= 4; c++)//各位循环
{
num = a * 100 + b * 10 + c; //a*100就是百位,b*10就是十位
printf("%d:%d\n", i++, num);
}
return 0;
}

❺ 任意输入4个不同的数,判断这4个数最多可以组合成多少个数 c语言

/*Made By gangjia*/
/*输入的数据用逗号隔开*/
#include "stdio.h"
main()
{
int a,b,c,d;
int Num1 = 1000,Num2 = 1000,Num3 = 1000,Num4 = 1000;
int tempa,tempb,tempc,tempd,temp;
int Num[24];
int i = 0,j = 0,k,x = 0;

printf("please input four Number:\n") ;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);

/*printf("the orgin number is:\n");*/
for(i = 0;i<4;i++)
{
for(j = 0;j<3;j++)
{ while(1)
{
Num2 = Num2/10;
if(Num2 == 0) Num2 = 1000;
if(Num2!=Num1) break;
}
for(k = 0;k<2;k++)
{ while(1)
{
Num3 = Num3/10;
if(Num3 == 0) Num3 = 1000;
if((Num3!=Num1)&&(Num3!= Num2)){
break;
}
}
while(1)
{
Num4 = Num4/10;
if(Num4 == 0) Num4 = 1000;

if((Num4!=Num1)&&(Num4!= Num2)&&(Num4!= Num3)){

break;
}
}
tempa = a*Num1;
tempb = b*Num2;
tempc = c*Num3;
tempd = d*Num4;
Num[x] = tempa+tempb+tempc+tempd;
/* printf("%d ",Num[x]); */
x++;

}
}
Num1 = Num1/10;
}
printf("\nFrom small to big:\n");
for(i = 0;i<24;i++)
{
for(j = i+1;j<24;j++)
{
if(Num[i]>Num[j])
{
temp = Num[i];
Num[i] = Num[j];
Num[j] = temp;
}
else Num[i] = Num[i];

}
printf("\t%d ",Num[i]);
if(i%5 == 4) printf("\n");
}
getch();

}

❻ 用C语言数组求4个不同的数字能组成多少个不同的4位数

请你看看排列组合。
这对你以后的开发很有帮助,是计算机科学的数学基础。
4个数字,如果不重复的就是4*3*2*1
=
24
如果可以重复的话就是4*4*4*4
=
256

❼ C语言编写一个程序,真心求教:1.2.3.4四个数,能组合成多少个不同的三位数,都是多少

将1234依次存入一个char型数组内,自定义一个全排列列函数进行4个数字的全排列运算,但每次输出时只取后3位即可达到目的。代码如下:

#include"stdio.h"
voidmyfun(char*p,inti,intn){//自定义全排列函数
intj,t;
if(i-n)
for(j=i;j<=n;j++){
t=p[i],p[i]=p[j],p[j]=t;
myfun(p,i+1,n);//全排列递归调用
t=p[i],p[i]=p[j],p[j]=t;
}
else
printf(++p[5]%10?"%s":"%s ",p+1);
}
intmain(intargc,char*argv[]){
chara[6]="1234";//多声明一个元素a[5]用来控制每行输出10个数
myfun(a,0,3);//用数组名和起末下标调用
if(a[5]%5)
printf(" ");
return0;
}

运行结果:

❽ 用C语言编程求1234四个数能组成多少互不相同且不重复的三位数

三位数有三个位置,每一个位置看作一个变量,假设为i、j、k,

互不相同且不重复的三位数,即i不等于j且j不等于k且i不等于j,用C语言逻辑表达式描述为:

i!=j&&j!=k&&i!=k

三个位置,每一个位置有1、2、3、4,四种可选值,因此其排列数为4^3 = 64种排列组合方法,三个位置互不相同,按分步乘法原理得一共有4x3x2 = 24种排列方法。编写示例代码如下:

#include<stdio.h>
intmain()
{
inti,j,k,n=0;//n用于统计个数
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
//保证三位数不重复
if(i!=j&&i!=k&&j!=k)
{
n++;
printf("%d%d%d",i,j,k);
if(n%4==0)
printf(" ");
}
printf(" 一共:%d ",n);
return0;
}


❾ 用4个数字可以组成多少个不同的三位数 C语言编程

#include<stdio.h>
intmain()
{
inti,j,k,n=0;//n用于统计个数
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for(k=1;k<5;k++)
//保证三位数不重复
if(i!=j&&i!=k&&j!=k)
{
n++;
printf("%d%d%d",i,j,k);
if(n%4==0)
printf(" ");
}
printf(" 一共:%d ",n);
return0;
}

❿ 4个数字有多少种组合

4个不同的数字有24种排列组合。

可以拿4个不同的数字来进行排列组合,例如2,3,4,5这4个不同的数,当2在最高位时就有2345,2354,2435,2453,2534,2543等6个4位数,那么4个不同的数组成的4位数就有4个6那么多,即24个。

但有一种排列组合比较特珠,也就是随便3个不同的数和0一起排列组合起来的4位数就没有24个了,因为0不能排在最高位上。

排列和组合的区别:

一、意思不同

1、排列:按次序站立或摆放。

例句:哥哥把需要用的参考书排列在桌子上。

2、组合:组织成为整体。

例句:所有这些替代的组合,构成一个补偏救弊的系统。

二、侧重点不同

1、排列:从n个不同的元素中,取r个不重复的元素,按次序排列,称为从n个中取r个的无重复排列。

例句:代表们的名单是按姓氏笔画的顺序排列的。

2、组合:从n个不同的元素中,取r个不重复的元素,组成一个子集,而不考虑其元素的顺序,称为从n个中取r个的无重组和。

例句:台上的这个组合是五位光彩夺目的二八佳人组成的。