C语言编程在线求!!!有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 5

C语言编程在线求!!!有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?... C语言编程在线求!!!有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 展开
 我来答
White_MouseYBZ
2017-07-10 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6603万
展开全部

显然,百位数有4种选择,为与百位数不重复,十位数就只有3种选择了;同样道理,个位数就只有2种选择。所以1、2、3、4等4个数字能组成4x3x2共24种互不相等且没有重复数字的3位数。根据上述原理,可用一个3层嵌套for循环来完成,代码如下:

#include "stdio.h"
int main(int argc,char *argv[]){
int i,j,k,t;
printf("A total of %d no repeat number 3-digits, they are as follows:\n",4*3*2);
for(t=0,i=1;i<=4;i++)//百位数字有4种选择
for(j=1;j<=4;j++)//十位数字有3种选择
if(j!=i)//遇到十位数字等于百位数字时跳过
for(k=1;k<=4;k++)//个位数字只有2种选择了
if(k!=i && k!=j)//个位数字与十位或百位数字相等时跳过
printf(++t%10 ? "%4d" : "%4d\n",i*100+j*10+k);//输出该三位数
if(t%10)
printf("\n");
return 0;
}

运行结果如下:

熊熊熊灬熊孩子
2018-03-31 · TA获得超过7375个赞
知道小有建树答主
回答量:69
采纳率:0%
帮助的人:1万
展开全部
  1. 这个是一个简单的排列组合问题:4*3*2=24种(第1位可以从4个数字中任选一个,第二位只能从剩下的3个数字中选一个,第三位只能从剩下的2个数字中任选一个)。

  2. 编程求解:

  3. [cpp] view plain copy print?

  4. #include<stdio.h>  

  5. #include<stdlib.h>  

  6. void Test()  

  7. {  

  8. int j = 1;  

  9. int k = 1;  

  10. int t = 1;  

  11. int num = 0;  

  12. for (j = 1; j <= 4; j++)  

  13. {  

  14. for (k = 1; k <= 4; k++)  

  15. {  

  16. for (t = 1; t <= 4; t++)  

  17. {  

  18. if ((j != k)  

  19. &&(j != t)  

  20. &&(k != t))  

  21. {  

  22. num = j + k * 10 + t * 100;  

  23. printf("%d    ", num);  

  24. }  

  25. }  

  26. }  

  27. }      

  28. }  

  29. int main()  

  30. {  

  31. Test();  

  32. system("pause");  

  33. return 0;  

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那时花开依然
2012-05-03 · TA获得超过195个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:127万
展开全部
#include<stdio.h>

void main()
{
int i;
int j;
int k;
int count=0;
printf("\n");
for(i=1;i<5;i++)
{
for(j=1;j<5;j++)
{
for(k=1;k<5;k++)
{
if(i!=k&&i!=j&&j!=k)
{
printf("%d%d%d\n",i,j,k);
count++;
}
}
}
}

printf("the total number is:%d\n",count);
}
一共24个 都是什么 程序运行一下就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿狸all拉
2018-12-08
知道答主
回答量:1
采纳率:0%
帮助的人:797
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c;//百位 十位 个位
int sum = 0;//能组成的个数
printf("题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数都是多少?\n\n");
for (int a = 1; a < 5; a++)//嵌套循环取值范围在1~4之间
{
for (int b = 1; b < 5; b++)
{
for (int c = 1; c < 5; c++)
{
if (a!=b&&a!=c&&b!=c)//
{
printf("%d%d%d ", a, b, c);
sum++;
}
else
{
continue;//如果相同跳出当前循环,这行代码可以不写
}
}
}
}
printf("\n");
printf("组成的数字一共有 %d",sum);
system("pause");
return 0;
//纯手写
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友28b4182
2012-05-03 · TA获得超过7222个赞
知道大有可为答主
回答量:4847
采纳率:100%
帮助的人:1840万
展开全部
/*

*/
#include<stdio.h>
#include<string.h>

int main()
{

int i,j,k,cnt=0;
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
if(i==j)continue;
for(k=1;k<=4;k++)
{
if(k==i||k==j)continue;
printf("%d%d%d ",i,j,k);
cnt++;
}
}
}
printf("\n共%d个\n",cnt);
return 0;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式