宫宸 发表于 2021-11-25 17:08:03

c语言简单问题1

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
#include<stdio.h>
int main()
{
        int a,b,c;
        for(a=1;a<=4;a++)
        {
                for(b=1;b<=4;b++)
                {
                        for(c=1;c<=4;c++)
                        {
                                if(a=!b&&a!=c&&b!=c)
                                {
                                printf("%d,%d,%d\n",a,b,c);
                          }
                        }
                }
        }
       
        return 0;
}
编译成功,但是运行打印不出来。

辞树 发表于 2021-11-25 20:27:46

朋友,第一个感叹号,应该在等号前面

番杰 发表于 2021-11-26 08:58:05

#include<stdio.h>
int main()
{
      int a,b,c;
      for(a=1;a<=4;a++)
      {
                for(b=1;b<=4;b++)
                {
                        for(c=1;c<=4;c++)
                        {
                              if((a != b) && ( a != c) && ( b != c )) //不能写成 a =!b
                              {
                              printf("%d,%d,%d\n",a,b,c);
                            }
                        }
                }
      }
      
      return 0;
}

傻眼貓咪 发表于 2021-11-26 19:34:18

本帖最后由 傻眼貓咪 于 2021-11-26 19:39 编辑

代码:#include <stdio.h>

int main()
{
    for(size_t a = 1; a <= 4; a++)
    for(size_t b = 1; b <= 4; b++)
    for(size_t c = 1; c <= 4; c++)
    if((a != b) && (a != c) && (b != c)) printf("%ld ", a*100 + b*10 + c);
    return 0;
}输出:123 124 132 134 142 143 213 214 231 234 241 243 312 314 321 324 341 342 412 413 421 423 431 432注:4 个不同数字,共 3 组比较(不等于符:!=):((a != b) && (a != c) && (b != c))

FishC--Student 发表于 2021-11-26 21:54:22

用 next_permutation 最简单

Integral 发表于 2021-11-28 14:15:47

if语句的条件,把a=!b改成a!=b就可以了
页: [1]
查看完整版本: c语言简单问题1