905853663 发表于 2020-11-25 23:24:44

请教分支语句相关问题

#include<stdio.h>
int main()
{
        int a,b,min,c;
        scanf("%d %d %d",&a,&b,&c);
        if (a<b)
          {
          a==min;
          if (c<a)
             c==min;
          }
        else
          {
          b==min;
          if (c<b)
                   c==min;
          }
        printf("%d",min);                                
}

请问以上代码是哪里有错误,目的是求三个数中最小的那个,输出结果是0,难道是嵌套错了?

a327190489 发表于 2020-11-25 23:30:30

你语法错了

a327190489 发表于 2020-11-25 23:32:31

#include<stdio.h>
int main()
{
      int a,b,min,c;
      scanf("%d %d %d",&a,&b,&c);
      if (a<b)
          {
          min=a;
            if (c<a)
               min=c;
          }
      else
          {
          min=b;
            if (c<b)
                   min=c;
          }
      printf("%d",min);                                 
}

905853663 发表于 2020-11-25 23:49:36

a327190489 发表于 2020-11-25 23:32


是因为==符号的右边不能是变量,一定要是常量吗?

a327190489 发表于 2020-11-25 23:58:15

不是,在C语言中“==”是咱们平常说的等于号,而“=”是赋值语句,把“=”右边的值赋给“=”左边的变量

a327190489 发表于 2020-11-25 23:59:14

905853663 发表于 2020-11-25 23:49
是因为==符号的右边不能是变量,一定要是常量吗?

不是,在C语言中“==”是咱们平常说的等于号,是用来判断“==”左右俩边是否相等的;而“=”是赋值语句,把“=”右边的值赋给“=”左边的变量

风过无痕1989 发表于 2020-11-26 00:32:02

比较大小,这么写,好看一些,也不容易出错


#include<stdio.h>
int main()
{
      int a,b,min,c;
      scanf("%d %d %d",&a,&b,&c);
      min = a;                // 先假定 a 就是最小值
      if (min > b)            // 与 b 比一次
      {
            min = b;
      }
      if (min > c)         // 与 c 比一次,搞定
      {
            min = c;
      }

      printf("%d",min);                                 
}

905853663 发表于 2020-11-26 10:39:06

a327190489 发表于 2020-11-25 23:59
不是,在C语言中“==”是咱们平常说的等于号,是用来判断“==”左右俩边是否相等的;而“=”是赋值语句, ...

这样啊,懂了

905853663 发表于 2020-11-26 10:40:10

风过无痕1989 发表于 2020-11-26 00:32
比较大小,这么写,好看一些,也不容易出错

好像是哦,这样没有嵌套不容易搞错,谢谢

风过无痕1989 发表于 2020-11-26 10:42:18

905853663 发表于 2020-11-26 10:40
好像是哦,这样没有嵌套不容易搞错,谢谢

问题搞懂了,就选为最佳答案吧
页: [1]
查看完整版本: 请教分支语句相关问题