标题:输出三个数中最大的一个(我想问一下这个代码为什么不行?)
只看楼主
望卿安好
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-3-7
结帖率:40%
已结贴  问题点数:10 回复次数:2 
输出三个数中最大的一个(我想问一下这个代码为什么不行?)
#include<stdio.h>
int max(int x,int y,int z)
{
    int m;int e;
    if (x+y+z<3*x) m=x;
    else e=y+z;
    if (e<2*y) m=y;
    else m=z;
    return m;
}
int main()
{
    int a,b,c,d;
    scanf("%d%d%d",&a,&b,&c);
    d=max(a,b,c);
    printf("%d\n",d);
    return 0;
 }
我的这个代码在DEVC++里能用,但在OJ系统里提示答案错误33%,题目要求输入一行数组,我想知道这个代码有没有错误(假如不针对题目)


[此贴子已经被作者于2020-3-8 21:41编辑过]

搜索更多相关主题的帖子: 输出 代码 int 个数 最大的 
2020-03-08 21:32
forever74
Rank: 12Rank: 12Rank: 12
来 自:CC
等 级:贵宾
威 望:49
帖 子:1636
专家分:3940
注 册:2007-12-27
得分:10 
100 102 2

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-03-08 22:00
望卿安好
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2020-3-7
得分:0 
回复 2楼 forever74
嗯,我明白了,我的这个代码是错的,输入三个数x,y,z,对于其中大于平均数的一个或两个,当我用x+y+z去判断时都会判断为最大值。比如你举的这个例子,100,102,2,平均数为68,当我用这三个数的和204去判断时,100也会被判定为最大值,因为204<3*100,而100并不是最大值。多谢提醒
2020-03-09 10:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-499645-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.579310 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved