周文佳语强化班

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

2018-10-01  本文已影响316人  王跃坤txdy

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

        第一种,也是我最早接触的一种,在谭浩强所写的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;

}

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

上一篇下一篇

猜你喜欢

热点阅读