21xrx.com
2025-04-23 03:16:56 Wednesday
文章检索 我的文章 写文章
如何在C语言中使用三个数字组成不同的数字
2023-06-13 01:56:13 深夜i     21     0
C语言编程 数字组合 循环遍历

在C语言编程中,我们经常需要组合数字来表示不同的数值。但是,有时候这些数字的组合方式会受到限制,比如只能使用三个数字来组成不同的数字。那么在这种情况下,我们应该如何编写代码,才能实现三个数字组成不一样的数呢?

首先,我们可以使用三层嵌套的循环来遍历所有的数字组合情况,具体如下:

for(int i=1;i<=9;i++){
  for(int j=0;j<=9;j++){
    for(int k=0;k<=9;k++)
      // TODO: 组合数字
    
  }
}

在上面的代码中,我们使用三个循环分别枚举三个数字的可能取值。接下来,我们需要在循环体中将这三个数字组合成一个数字,并判断该数字是否已经出现过。如果是全新的数字,我们就可以将它保存下来,否则就忽略它。

具体实现如下:

#include 
int main(){
  int nums[1000]; // 保存所有不同的数字
  int cnt = 0; // 数字总数
  
  for(int i=1;i<=9;i++){
    for(int j=0;j<=9;j++){
      for(int k=0;k<=9;k++){
        if(i!=j && j!=k && i!=k){ // 三个数字不相同
          int num = i*100 + j*10 + k;
          int flag = 1; // 标记数字是否已经出现过
          
          for(int m=0;m
            if(nums[m] == num)
              flag = 0;
              break;
            
          }
          
          if(flag){ // 新的数字
            nums[cnt++] = num;
          }
        }
      }
    }
  }
  
  printf("共有%d个不同的数字:\n", cnt);
  for(int i=0;i
    printf("%d ", nums[i]);
  }
  
  return 0;
}

上面的代码先定义一个数组 `nums`,用来保存所有不同的数字。然后,在三重循环中,我们将三个数字组合成一个数字,并使用一个标记 `flag` 来判断该数字是否已经出现过。然后,我们判断如果是全新的数字,就将它保存到 `nums` 数组中,并将 `cnt` 计数器加一。最后,我们遍历 `nums` 数组,输出所有不同的数字。

  
  

评论区

    相似文章
请求出错了