美文网首页周文佳语强化班
C语言中关于三者取大的三种表达方式

C语言中关于三者取大的三种表达方式

作者: 王跃坤txdy | 来源:发表于2018-10-01 19:41 被阅读316次

            以下是一个刚刚接触计算机的菜鸡的拙见。欢迎各位大佬发表意见。

            第一种,也是我最早接触的一种,在谭浩强所写的c程序设计第五版第八页,该程序是比较两个整数中的较大者,我们只需要将程序稍加改动,也就是加入一个新的变量,就可以得到我们想要的三者取大,具体程序如下(该程序已经过调试):

    #include<stdio.h>

    int  main()

    {

          int  max(int w, int x, int y);

          int a,b,c,d;

          scanf("%d,%d,%d",&a,&b,&c);

          d=max(a,b,c);

          printf("%d",d);

          return  0;

    }

    int  max(int w, int x, int y)

    {

          int m,n;

          if(w>x)

          m=w;

          else

          m=x;

          if(m>y)

          n=m;

          else

          n=y;

          return(n)

    }

            第一条程序的难点在于他加了一个附加函数max。这是我想如果不调用附加函数,并将其中的两个变量m,n,改为一个变量max ,程序会不会简单一点?于是我写出了第二条程序(该程序同样经过了调试):

    #include<stdio.h>

    int  main()

    {

          int a,b,c,max;

          scanf("%d,%d,%d",&a,&b,&c);

          max=a;

            if(max<b)

            max=b;

            if(max<c)

            max=c;

            printf("%d",max);

            return  0;

    }

          当我在看书时,无意间发现条件运算符这个神奇的东西,一切似乎变得那么豁然开朗,而且可能是c语言中唯二的三目运算符。于是我又写出了下面这条程序(该程序同样经过了调试):

    #include<stdio.h>

    int  main()

    {

          int a,b,c,x;

          scanf("%d,%d,%d",&a,&b,&c);

          x=(a>b)?(a>c?a:c):(b>c?b:c);

          printf("%d",x);

          return  0;

    }

    在我调试完三个程序之后,在我写这篇文章之前,我是万万没有想到这个简书是不能复制粘贴的,所以我又用手机把三个程序打了一遍。但愿是没有疏漏的,如果有,欢迎大家来指正,当然,如果大家有什么新奇的方法,也可以跟我交流。

    相关文章

      网友评论

      本文标题:C语言中关于三者取大的三种表达方式

      本文链接:https://www.haomeiwen.com/subject/mhwnoftx.html