流光 发表于 2021-11-29 22:31

C语言学习100列之001

本帖最后由 流光 于 2021-11-30 10:40 编辑

【程序1】
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去
      掉不满足条件的排列。

2.程序源代码:
#include "stdio.h"
#include "conio.h"
main()
{
int i,j,k;
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) /*确保i、j、k三位互不相同*/
      printf("%d,%d,%d\n",i,j,k);
      }
getch();
}

自写代码:

#include <stdio.h>
int fun(int c) {
      switch (c)
      {
      case 1:
                return 1;
               
      case 2:
                return 1;
               
      case 3:
                return 1;
               
      case 4:
                return 1;
               


      default:
                return 0;

               
      }


}

int main() {

      
      int sum = 0;   //统计合规次数
      for (int i = 100; i < 1000; i++)
      {
                //获取三个位数的值
                int i001 = i % 10;
                int i010 = i % 100 / 10;
                int i100 = i / 100;
                //写函数对比
                if (fun(i001) == 1 && fun(i010) == 1 && fun(i100) == 1 && i001 != i010 && i010 != i100 && i100 != i001)
                {
                        printf("一共找到%d个数,%d\n", sum, i);

                        sum++;
                }


      }





      return 0;

}



qqcs6 发表于 2021-11-29 23:09

本帖最后由 qqcs6 于 2021-11-29 23:12 编辑

你这自写的代码不对吧。。。{:1_896:}
333满足你写的条件。。。但是这仨都是重复数字。。。

Lea42195 发表于 2021-11-30 05:36

正好我也在复习C语言

lovxyj 发表于 2021-11-30 07:24

学习一下

liuhanbo 发表于 2021-11-30 08:19

从001开始学起。

JonminT 发表于 2021-11-30 09:08

厉害啊,大老弟

JonminT 发表于 2021-11-30 09:09

好学吗?膜拜大神

tlf 发表于 2021-11-30 09:09

YLFL24 发表于 2021-11-30 09:43

话说这个适合新手学吗?只学过基础C++还快忘光了的那种

cuicuo 发表于 2021-11-30 09:52

学一学,增长知识
页: [1] 2 3
查看完整版本: C语言学习100列之001