「已注销」 2015-06-04 15:50 采纳率: 100%
浏览 4954

C语言中关于if if-else语句的问题?

代码1如下
运行环境 :VS2013
代码作用:输入三个数然后判断其中最小的一位数然后输出的

 #include<stdio.h>
#include<stdlib.h>

int main()
{
    int x, y, z, min;
    min = 0;
    scanf_s("%d %d %d", &x, &y, &z);

    if (x < y)           
    {
        min = x;
    }
    else if (y < x)  //这个if不起作用
    {
        min = y;
    }
    else if (min > z)          //这样写构成了一个级联的if -else if 语句 
    {
        min = z;
    }
    printf("%d", min);
    system("pause");
    return 0;
}

代码2如下:

 #include<stdio.h>
#include<stdlib.h>

int main()
{
    int x, y, z, min;
    min = 0;
    scanf_s("%d %d %d", &x, &y, &z);

    if (x < y)           
    {
        min = x;
    }
    else (y < x)  //删除if后
    {
        min = y;
    }
    if (min > z)          //删除else后 
    {
        min = z;
    }
    printf("%d", min);
    system("pause");
    return 0;
}

附:
这两个程序那个比较好呢?运行的结果都是一样的,不知道1好还是2好。请同胞们给些意见 多谢了!

  • 写回答

22条回答 默认 最新

  • 知常曰明 2015-06-04 22:50
    关注
    • 不是好不好的问题。第一段、第二段都有严重的错误,不能说好不好,只能说对不对。
    • 第一段:
    • 在if (...) {} else if (... ) {} else{}这样的判断中,所有的分支只会执行一个。
    • 在你的第一段代码中
         if (x < y)           
        {
            min = x;
        }
        else if (y < x)  //这个if不起作用
        {
            min = y;
        }
        else if (min > z)          //这样写构成了一个级联的if -else if 语句 
        {
            min = z;
        }
    
    

    if(x<y)和else if(y<x)几乎是矛盾的。也就是说只有当x==y的时候才会去做最下面的那个min和z的比较。而当做到这个比较的时候,min还是0,

    • 第二段
        if (x < y)           
        {
            min = x;
        }
        else (y < x)  //删除if后
        {
            min = y;
        }
    
    

    else后面不能跟条件。这里应该是语法错误,编译不能通过。如果要改的话,可以

     else //(y < x)  //删除if后
    
    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?