NJC0806


私信TA

用户名:18827759342

访问量:7195

签 名:

简单的事情重复做,重复做的事情坚持做,坚持做的事情开心做。

等  级
排  名 1260
经  验 3039
参赛次数 2
文章发表 12
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

解题思路:

          主要是利用排列组合的思想,用多重循环来实现。

注意事项:

         需要对题目要求的输出有个清楚的认识,否则会出现格式错误。


          对每组卡片按从小到大的顺序输出所有能由这四张卡片组成的4位数,千位数字相同的在同一行,同一行中每个四位数间用空格分隔,每组输出数据间空一行最后一组数据后面没有空行

参考代码:

                                                      欢迎大家批评指正,谢谢!!!

            #include<stdio.h>
            int main()
            {
              int n,array[4];
              int i,j,k,l;
              scanf("%d",&n);
              while(n--)
              {
                 for(i=0;i<4;i++)
                       scanf("%d",&array[i]);
                 for(i=0;i<4;i++)
                 {
                     for(j=0;j<4;j++)
                         for(k=0;k<4;k++)
                              for(l=0;l<4;l++)
                                    if(i!=j&&i!=k&&i!=l&&j!=k&&j!=l&&k!=l)           //确保每位数字不同
                                          printf("%d%d%d%d ",array[i],array[j],array[k],array[l]);
                     printf("\n");                 //千位不同时换行
                  }
                  if(n>0)
                       printf("\n");             //最后一组不换行
            } 
             return 0;
          }


 

0.0分

1 人评分

  评论区

很棒啊,我和你的思路差不多,不过遇到些问题,看到你的就明白了
2020-03-07 12:44:17
  • «
  • 1
  • »