| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2760 人关注过本帖
标题:小白问:C语言怎么同时输出三个数的最大值,最小值和中间数?求大佬相助!
只看楼主 加入收藏
汽水菠萝
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2020-4-23
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:7 
小白问:C语言怎么同时输出三个数的最大值,最小值和中间数?求大佬相助!
#include <stdio.h>
int main()
{
    int a,b,c;
    printf ("输入");
    scanf("%d%d%d",&a,&b,&c);
   
    if(a<=b &&  a<=c)
    printf("min=%d\n",a);
    if(b<=a &&  b<=c)
    printf("min=%d\n",b);
    if(c<=a &&  c<=b)
    printf("min=%d\n",c);
}
   
   
怎么在上面的基础上加入程序,可以同时输出最大值,最小值和中间数?
搜索更多相关主题的帖子: 最小值 中间数 printf 输出 最大值 
2020-04-23 19:20
汽水菠萝
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2020-4-23
收藏
得分:0 
#include <stdio.h>
int main()
{
    int a,b,c;
    printf ("输入");
    scanf("%d%d%d",&a,&b,&c);
    {
    if(a<=b &&  a<=c)
    printf("min=%d\n",a);
    if(b<=a &&  b<=c)
    printf("min=%d\n",b);
    if(c<=a &&  c<=b)
    printf("min=%d\n",c);
    }

    {
    if(a>=b &&  a>=c)
    printf("max=%d\n",a);
    if(b>=a &&  b>=c)
    printf("max=%d\n",b);
    if(c>=a &&  c>=b)
    printf("max=%d\n",c);
    }
    {
    if(a>=b &&  b>=c)
    printf("中间数=%d\n",b);

    if(b>=a &&  a>=c)
    printf("中间数=%d\n",a);

    if(a>=c &&  c>=b)
    printf("中间数=%d\n",c);
    }
}



  为什么这么写不能输出中间数呀?
2020-04-23 19:59
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
因为你没有把全部情况描述完整
你只描述了
a b c
b a c
a c b
还有
b c a
c a b
c b a
三种情况你没考虑到
补全就可以了

https://zh.
2020-04-23 20:22
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:20 
其实可以考虑对这三个变量做排序 就可以直接得到最大值最小值中间值了
排序操作也比较简单
a和b比较 a大于b就交换ab
然后这样a必然小于b
然后a和c比较 a大于c就交换
这样a必然小于b和c
最后b和c比较 b大于c就交换
这样 3个比较和最多3个交换就完成了排序

https://zh.
2020-04-23 20:27
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
收藏
得分:0 
回复 2楼 汽水菠萝
建议比较三个数的最大最小值时,是运用交换两个数的方法。如果像你这样写的话,逻辑太难理清了。
程序代码:
#include<stdio.h>

int main(void)
{
    int a, b, c, temp;
    printf("Please you input the a, b, c: ");
    scanf("%d%d%d", &a, &b, &c);
    if(a > b){ temp = a; a = b; b = temp;}
    if(a > c){ temp = a; a = c; c = temp;}
    if(b > c){ temp = b; b = c; c = temp;}
    printf("The max is %d, the min is %d, the mid is %d\n", c, a, b);

    return 0;
}

借用一下侯捷的话:勿在浮沙筑高台。
2020-04-23 20:27
汽水菠萝
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2020-4-23
收藏
得分:0 
回复 5楼 吕孟伟
谢谢你,我现在是刚开始学,老师才只教了这种if选择语句,所以这么写。还是谢谢你啦
2020-04-23 20:40
汽水菠萝
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2020-4-23
收藏
得分:0 
回复 3楼 lin5161678
原来是这样!太谢谢你啦
2020-04-23 20:42
汽水菠萝
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2020-4-23
收藏
得分:0 
回复 3楼 lin5161678
图片附件: 游客没有浏览图片的权限,请 登录注册
奇怪,六种情况都写了但是还是没有输出中间数
2020-04-23 20:47
快速回复:小白问:C语言怎么同时输出三个数的最大值,最小值和中间数?求大佬相 ...
数据加载中...
 
   



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

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