搜索
查看: 333|回复: 12
打印 上一主题 下一主题

任意输入4个数选出最大的程序,还有那些更简练的?

[复制链接]
跳转到指定楼层
楼主
发表于 2018-2-3 17:23:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,e,f;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    if(a>b)
    {
    e=a;
    }
    else
    {
    e=b;
    }
    if(c>d)
    {
    f=c;
    }
    else
    {
    f=d;
    }
    if(e>f)
    {
    printf("%d\n",e);
    }
    else
    {
    printf("%d\n",f);
    }
        system("pause");
        return 0;
}

推荐
发表于 2018-2-3 18:38:07 | 只看该作者
通过循环化简:
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,i,max=-99999999;
        for(i=0;i<4;i++)
        {
                scanf("%d",&a);
                if(a>max)
                        max=a;
        }
        printf("%d",max);
        system("pause");
        return 0;
}
[/mw_shl_code]

点评

一般都是用这种方式。  发表于 2018-2-4 18:45
谢谢指点了,一开始没有看懂,研究了好一会才算看明白了,很厉害的逻辑啊,能感觉到思路的神奇,编程的魅力了  发表于 2018-2-4 17:51
不过时间也不会浪费多少。  发表于 2018-2-3 20:20
的确。  发表于 2018-2-3 20:18
坏处就是 浪费时间  发表于 2018-2-3 19:59
沙发
发表于 2018-2-3 18:34:29 | 只看该作者
用“?:”运算符化简:
[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
int main()
{
        int a,b,c,d,e,f;
        scanf("%d %d %d %d",&a,&b,&c,&d);
        e=(a>b)?a:b;
        f=(c>d)?c:d;
        printf("%d",(e>f)?e:f);
        system("pause");
        return 0;
}
[/mw_shl_code]
地板
 楼主| 发表于 2018-2-4 17:41:47 | 只看该作者
创世菌 发表于 2018-2-3 18:34
用“?:”运算符化简:
[mw_shl_code=c,true]#include
#include

e=(a>b)?a:b;
这句话怎么理解呢?如果A,B的值符号a>b,则e=a吗?

点评

去网上查查“C语言三元操作符 ?: ”。  发表于 2018-2-5 01:18
如果 a>b,e=a,否则 e=b。  发表于 2018-2-4 18:44
5#
 楼主| 发表于 2018-2-6 17:05:57 | 只看该作者
谢谢,看着感觉很复杂的样子,确实应该多去查资料
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表